2

我正在处理使用一些复杂逻辑在 JDBC CallableStatement 中绑定 IN 和 OUT 参数的遗留代码。该代码看起来为 IN 和 OUT 参数绑定了正确的类型,但是当执行 CallableStatement 时,Oracle 存储过程会抛出此异常:

ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'STORED_PROC_ABC'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

" line 1, column7:" 没有帮助。它没有指向存储过程中的任何内容。

我编写了一个简单的独立测试用例来调用存储过程。使用与遗留代码相同的参数和绑定类型,它成功了。

我需要一种方法来比较遗留代码中的两个 CallableStatement 对象和我的独立测试,看看有什么不同。

有没有办法从 CallableStatement 中获取相关的参数绑定信息(值和类型)?如果有一些第三方库可以做到这一点,那就太好了,否则我需要一种方法来挖掘各种绑定。

谢谢。

4

2 回答 2

4

您可以使用 CallableStatement.getParameterMetaData() http://download.oracle.com/javase/1.4.2/docs/api/java/sql/ParameterMetaData.html

于 2011-07-12T21:48:44.913 回答
0

JDBC CallableStatement 对象旨在表示对数据库服务器中存储过程的调用。

使用java.sql Interface ParameterMetaData.

一个对象,可用于获取有关 PreparedStatement 对象中参数的类型和属性的信息。

于 2011-07-12T21:50:38.763 回答