【问题标题】:Parameter limit on Callable statement - Oracle jdbc driver (oracle.jdbc.OracleDriver)Callable 语句的参数限制 - Oracle jdbc 驱动程序 (oracle.jdbc.OracleDriver)
【发布时间】:2014-10-21 15:56:55
【问题描述】:

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

【问题讨论】:

  • 能否请您显示您的代码和完整的错误消息/堆栈跟踪?

标签: jdbc oracle11g messagebroker


【解决方案1】:

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

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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 2012-10-05
    • 2020-01-29
    • 1970-01-01
    • 1970-01-01
    • 2016-12-10
    相关资源
    最近更新 更多