通过JMeter调用DB2存储过程语法错误
Syntax Error While Calling DB2 Stored Procedure Through JMeter
我正在尝试调用一个 DB2 存储过程,它有两个输入参数(时间戳,两者)和一个输出参数(整数)。我正在尝试从 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 方面来看,其他一切都很完美。
我正在尝试调用一个 DB2 存储过程,它有两个输入参数(时间戳,两者)和一个输出参数(整数)。我正在尝试从 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 方面来看,其他一切都很完美。