0
有人可以共享如何使用命名參數在Mule CE下調用存儲過程嗎? 我想使用JDBC組件或新的DB組件下AnyPointConnect 3.5Mule exec Oracle存儲過程
有人可以共享如何使用命名參數在Mule CE下調用存儲過程嗎? 我想使用JDBC組件或新的DB組件下AnyPointConnect 3.5Mule exec Oracle存儲過程
之前申報DB配置請查收過程調用語法騾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>
{
• \t P_return_status: "S",
• \t P_line_id: "684229",
• \t p_flow_Status_code: "ENTERED",
• \t P_ordered_date: "2015-05-22",
• \t P_order_number: 69393
}
您可以使用數據庫元素這樣
<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>
在這個例子中,我把過程調用調用存儲過程在交易範圍內。 您還可以與數據源
工作正常!爲了仔細檢查,我詢問了有關命名參數,以便在任何程序更改的情況下不會中斷流程。使用這種方法,jdbc使用參數的namo而不是索引調用過程,它是正確的嗎?非常感謝您的支持! – cocardoso 2014-10-14 23:12:32
是的,它會使用這個名字,但是你必須注意參數是按照正確的順序設置的(就像在我的例子中),這是一個mule studio的bug,應該在下一個版本中修復。 – Nicolas 2015-01-16 10:47:34