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