无法从 ESQL 中的存储过程获取结果集?

问题描述 投票:0回答:2

我正在从 esql 调用外部存储过程,其中输入也是 clob,输出也是 clob。

我必须发送输入并从 Oracle DB 存储过程获得响应。

但是我收到错误消息 SQL TYPE NOT FOUND 0 Error...

任何建议...

#MessageBroker #IIB #ESQL

CALL pro_call(P_DATA_CLOB,P_INIT_LOGGING) INTO V_RETRUN;

CREATE PROCEDURE pro_call(IN P_REQUEST CHAR ,IN P_INIT_LOGGING BOOLEAN) 
RETURNS CHAR
LANGUAGE DATABASE 
EXTERNAL NAME "INTERFACE.LPB_SERVICING.GET_SERVICE";

已经试过了,但是收到错误响应。

请让我们知道是否有人使用过它并获得成功响应。

oracle stored-procedures messagebroker ibm-integration-bus embedded-sql
2个回答
0
投票

我认为问题出在声明中的 BOOLEAN 参数。 Oracle SQL 没有 BOOLEAN 类型,因此 ESQL BOOLEAN 和 Oracle 类型之间没有映射。

https://www.ibm.com/docs/en/app-connect/11.0.0?topic=functions-data-types-values-from-external-databases


0
投票

我从 iib 得到以下异常:

CREATE PROCEDURE compasscall(在 P_REQUEST CHAR 中,在 P_INIT_LOGGING BOOLEAN 中)返回 CHAR 语言数据库外部名称“INTERFACE.LPB_SERVICING.GET_SERVICE”;

CALL compasscall(P_DATA_CLOB,P_INIT_LOGGING) INTO Pro_Request1;

为此,出现以下错误: 文本:字符:[IBM][ODBC Oracle Wire Protocol 驱动程序]不支持的 SQL 类型:0

CALL compasscall(Pro_Request,Pro_Request_Flag,Environment.Resultset[]);

CREATE PROCEDURE compasscall(在 Pro_Request 字符中,在 Pro_Request_Flag BOOLEAN 中) 语言数据库动态结果集 1 外部名称“INTERFACE.LPB_SERVICING.get_service”;

对于此方法,在 iib 中收到以下错误: 文本:字符:带有“&2”参数的过程“&1”无法与相应的数据库存储过程匹配。 插入 类型:整数:5 文本:字符:LPBTEST.INTERFACE.LPB_SERVICING.GET_SERVICE 插入 类型:整数:2 文本:字符:2

© www.soinside.com 2019 - 2024. All rights reserved.