繁体   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