簡體   English   中英

通過JMeter調用DB2存儲過程時的語法錯誤

[英]Syntax Error While Calling DB2 Stored Procedure Through JMeter

我試圖調用一個DB2存儲過程,該存儲過程具有兩個Input參數(兩個均為Timestamp)和一個Output參數(為Integer)。 我正在嘗試從JMeter JDBC Sampler這樣做,並獲取sql語法異常。

Response code: 42884 -440
Response message: com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-440, SQLSTATE=42884, SQLERRMC=PROCEDURE;DEVSCHEMA.GET_ROW_COUNT, DRIVER=4.19.26

Response headers:
1272084586, URL=jdbc:db2://<db2IP>:<port>/DB2T, UserName=<someUserName>, IBM Data Server Driver for JDBC and SQLJ 

從IBM文檔中我知道,當不存在任何一個存儲過程時,就會發生此錯誤-情況並非如此,模式名稱不正確-情況也並非如此,參數數量不匹配-我對此進行了驗證,但對此表示懷疑這一點是因為JMeter提供了要填充的單獨字段,並且在其中一個字段中我可能傳遞了錯誤的值。

我對JMeter的了解不多,但是在apache JMeter文檔的幫助下,我為“樣本字段”設置了以下值。

Query Type: Callable Statement 
Query: CALL DEVSCHEMA.GET_ROW_COUNT(?,?,?)
Parameter Values: ${__time(yyyy-MM-dd HH:mm:ss,)},${__time(yyyy-MM-dd HH:mm:ss,)},0 
Parameter Types: IN TIMESTAMP,IN TIMESTAMP,OUT INTEGER 
Variable Names:VARCOUNT 
Handle ResultSet: Store as a String

有人可以找出我在哪里犯錯嗎? 非常感謝。

該問題已解決。 從字面上看,我從未想過。 當我嘗試使用Java代碼訪問相同的SP時遇到相同的錯誤時,我聯系了編寫存儲過程的DB2團隊。 問題在於SP。 據他們說, execute訪問權限是給定的,因此在這里和那里進行鑽探之后,他們傾向於創建一個新的SP,該SP可以正常工作。 在JMeter方面,其他一切都很完美。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM