2014-10-07 222 views

回答

1

之前申报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 
 
}

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> 

在这个例子中,我把过程调用调用存储过程在交易范围内。 您还可以与数据源

+0

工作正常!为了仔细检查,我询问了有关命名参数,以便在任何程序更改的情况下不会中断流程。使用这种方法,jdbc使用参数的namo而不是索引调用过程,它是正确的吗?非常感谢您的支持! – cocardoso 2014-10-14 23:12:32

+0

是的,它会使用这个名字,但是你必须注意参数是按照正确的顺序设置的(​​就像在我的例子中),这是一个mule studio的bug,应该在下一个版本中修复。 – Nicolas 2015-01-16 10:47:34