IBM ACE - 调用 Oracle 过程返回行类型通过 ESQL 计算节点

问题描述

我正在尝试调用存储在 plsql 中的过程。这是我迄今为止尝试过的。

在甲骨文中:

create or replace PROCEDURE dbSwapParms  
( in_param IN VARCHAR2,out_param OUT varchar2,inout_param IN OUT customer%ROWTYPE) 
AS 
BEGIN
  select * 
  into inout_param 
  from SYS_ENDPOINTS  where customer_name=in_param; -- assuming this query returns single row
END;

在计算节点:

-- Definition of procedure  
CREATE PROCEDURE swapParms ( 
      IN parm1 CHARACTER,OUT parm2 CHARACTER 
    )
    LANGUAGE DATABASE  
    DYNAMIC RESULT SETS 1 
    EXTERNAL NAME dbSwapParms;

-- 调用程序

CALL swapParms( inputParm,outputParm,OutputRoot.JSON.Data.test[]); -- found this in ibm documentation returning result set

这里是错误:

BIP2230E: Error detected whilst processing a message in node 'gen.CB_testBar.postHelloWorld (Implementation).Compute4'. 
BIP2488E: ('.postHelloWorld_Compute4.Main','19.4') Error detected whilst executing the SQL statement ''CALL swapParms(inputParm,OutputRoot.JSON.Data.test[]);''. 
BIP2934E: Error detected whilst executing the function or procedure ''swapParms''. 
BIP2321E: Database error: ODBC return code '-1' using ODBC driver manager ''odbc32.dll''. 
BIP2322E: Database error: SQL State ''HY000''; Native Error Code '0'; Error Text ''[IBM][ODBC Oracle Wire Protocol driver]SQL type not supported: 0''.

我不确定我是否正确地表示了 oracle 过程。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)