Mule执行Oracle存储过程

时间:2014-10-07 01:57:13

标签: oracle mule esb procedure

有人可以使用命名参数分享如何使用Mule CE调用存储过程吗? 我想在AnyPointConnect 3.5下使用JDBC组件或新的一个数据库组件

2 个答案:

答案 0 :(得分:1)

请在Mule 3.6中找到过程调用语法

<db:stored-procedure config-ref="Oracle_Configuration1" doc:name="Database">
            <db:parameterized-query><![CDATA[{call apps.create_sales_Order(:p_header_rec_oper,:P_order_number,:P_ordered_date,:P_line_id,:p_flow_Status_code,:P_return_status)}]]></db:parameterized-query>
            <db:in-param name="p_header_rec_oper" value="CREATE"/>
            <db:out-param name="P_order_number" type="INTEGER"/>
            <db:out-param name="P_ordered_date" type="DATE"/>
            <db:out-param name="P_line_id" type="VARCHAR"/>
            <db:out-param name="p_flow_Status_code" type="VARCHAR"/>
            <db:out-param name="P_return_status" type="VARCHAR"/>
            
</db:stored-procedure>

{
•	P_return_status: "S",
•	P_line_id: "684229",
•	p_flow_Status_code: "ENTERED",
•	P_ordered_date: "2015-05-22",
•	P_order_number: 69393
}

答案 1 :(得分:0)

您可以使用像这样的

数据库元素调用存储过程
<transactional action="ALWAYS_BEGIN" doc:name="My_Transaction">
        <db:stored-procedure config-ref="My_Database_Configuration" doc:name="Database">
            <db:parameterized-query><![CDATA[call my_procedure(:p_param1,:p_param2,:p_output)]]></db:parameterized-query>
            <db:in-param name="p_param1" type="VARCHAR" value="#[flowVars.param]"/>
            <db:in-param name="p_param2" type="VARCHAR" value="#['Hardcoded_value']"/>
            <db:out-param name="p_output" type="VARCHAR"/>
        </db:stored-procedure>
    </transactional>

在这个例子中,我将过程调用放在事务范围内。 您还必须在使用数据源

之前声明db配置