Callable语句的参数限制 - Oracle jdbc驱动程序(oracle.jdbc.OracleDriver)

时间:2014-08-12 13:23:32

标签: jdbc oracle11g messagebroker

我正在使用IBM消息代理,v8.0.0.2。我试图调用一个包含45个参数的存储过程,in和out。我使用Oracle jdbc驱动程序(oracle.jdbc.OracleDriver)。事实证明我得到了一个无效的列索引' SqlException,每当我尝试设置第45个IN或OUT参数时,这都很奇怪。有这样的限制吗?

1 个答案:

答案 0 :(得分:0)

向我们提供您创建的代码和异常列表中的异常,顺便说一下,使用SQL Developer或您正在使用的任何编辑器测试存储过程。使用ESQL和调用数据库存储过程创建过程。< / p>

CREATE PROCEDURE YourProcedureName(IN PARAM1 TYPE, IN PARAM2 TYPE,...,
OUT PARAM44 TYPE, INOUT PARAM45 TYPE) 
LANGUAGE DATABASE DYNAMIC RESULT SETS 1 EXTERNAL NAME "ProcedureNameInDB";

在主要功能

CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
   --CopyMessageHeaders();
   --CopyEntireMessage();

   -- DECLARE HERE PARAMETERS FOR THE PROCEUDRE
   -- In This Block Declare the 45 parameters for passing them in ESQL Procedure.
   -- Then ESQL will pass them to Oracle Stored Procedure.
   -- END DECLARE  PARAMETERS FOR THE PROCEUDRE

   -- Environment.DBRowSetResult: Storing Stored Procedure Output in Environment variable.

   CALL YourProcedureName(param1, param2, .... param44,param45, Environment.DBRowSetResult);

END;