【问题标题】:Mule exec Oracle Stored ProcedureMule exec Oracle 存储过程
【发布时间】:2014-10-07 01:57:12
【问题描述】:

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

【问题讨论】:

    标签: oracle mule esb procedure


    【解决方案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
    }

    【讨论】:

      【解决方案2】:

      您可以像这样使用 Database 元素调用存储过程

      <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而不是索引,是否正确?非常感谢您的支持!
      • 是的,它会使用名称。但是你必须注意参数设置的顺序正确(就像我的例子一样),这是mule studio的一个bug,应该修复在下一个版本中。
      猜你喜欢
      • 2011-01-03
      • 2011-12-29
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 2014-05-26
      • 2017-10-09
      相关资源
      最近更新 更多