如何解决如何从 Mule4 中的 Oracle 存储过程获取 TABLE 类型返回类型?
您好,我正在尝试在 Oracle 中调用一个返回 TABLE 类型的存储过程。这是我的包裹
create or replace PACKAGE "PKG_LOGIC_SERVICE" AS
TYPE ll_ret_rec IS RECORD (
ll_attribute loan_logic.attribute%TYPE,ll_ret_value loan_logic.ret_value%TYPE,ll_edit_type loan_logic.edit_type%TYPE,ll_applic_type loan_logic.application_type%TYPE,ll_rule_order loan_logic.rule_order%TYPE,ll_db_field_name loan_logic.db_field_name%TYPE,ll_xpath_name loan_logic.xpath_name%TYPE,ll_loan_id loans.loan_id%TYPE,ll_process_id NUMBER(12)
);
TYPE ll_ret_table IS
TABLE OF ll_ret_rec;
PROCEDURE pr_loan_logic_check (
in_loan_id IN loans.loan_id%TYPE,in_trans_id IN NUMBER,as_errm OUT VARCHAR2,-- curr_cursor_out IN OUT SYS_REFCURSOR,ll_ret_table_out OUT PKG_LOGIC_SERVICE.ll_ret_table
);
PROCEDURE pr_insert_pricing_table (
in_loan_id IN loans.loan_id%TYPE,ad_cur_seq_no OUT NUMBER,ad_retval OUT NUMBER,as_errm OUT NOcopY VARCHAR2
);
END PKG_LOGIC_SERVICE;
我试图从骡子打电话的方式如下
{call PKG_LOGIC_SERVICE.pr_loan_logic_check(776665544,987,:as_errm,:ll_ret_table_out)}
wrong number or types of arguments in call to 'pr_loan_logic_check'
我的 XML SP 部分是
<db:stored-procedure doc:name="Stored procedure" doc:id="ffc0e3aa-193a-4e86-91df-a52562e5acc4"
config-ref="DB_CONfig">
<db:sql ><![CDATA[{call
PKG_LOGIC_SERVICE.pr_loan_logic_check(776665544,:ll_ret_table_out)}]]></db:sql>
<db:output-parameters >
<db:output-parameter key="ll_ret_table_out" customType="TABLE" />
<db:output-parameter key="as_errm" type="VARCHAR" />
</db:output-parameters>
</db:stored-procedure>
解决方法
输出类型应该是“CURSOR”而不是“TABLE”
<db:output-parameter key="ll_ret_table_out" customType="CURSOR" />
此外,我不确定 SP 调用是否仅使用 3 个参数。您是否在外部 SQL 客户端上尝试过?
您可能还想了解 Oracle UDT。
,可以按照这篇文章修复它
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。