首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Mule中的存储过程检索varchar值时出现问题

从Mule中的存储过程检索varchar值时出现问题
EN

Stack Overflow用户
提问于 2016-09-29 22:32:01
回答 1查看 292关注 0票数 0

您好,我无法将存储过程中的varchar值检索到我的mule流中。它总是返回空值。在mule和存储过程脚本中声明输出参数时,我遵循了相同的顺序。下面是我的mule流和一个示例存储过程脚本i'm using.Please help来解决这个问题。提前谢谢。

代码语言:javascript
复制
   <db:oracle-config name="Oracle_Configuration" host="localhost" port="1521" instance="xe" user="user1" password="user1" doc:name="Oracle Configuration"/>
    <flow name="SPTestFlow">
        <poll doc:name="Poll">
            <fixed-frequency-scheduler frequency="1000" timeUnit="DAYS"/>
            <logger message="Started" level="INFO" doc:name="Logger"/>
        </poll>
        <db:stored-procedure config-ref="Oracle_Configuration" doc:name="CostCalculationSP" >
            <db:parameterized-query><![CDATA[call user1.CARRINV(:MSG,:CD)]]></db:parameterized-query>
            <db:out-param name="MSG" type="VARCHAR"/>
            <db:out-param name="CD" type="VARCHAR"/>
        </db:stored-procedure>
        <logger message="#[payload[MSG]],#[payload[CD]]" level="INFO" doc:name="Logger"/>
    </flow>

示例存储过程脚本

代码语言:javascript
复制
create or replace PROCEDURE CARRINV 
(
 MSG OUT VARCHAR2,
 CD OUT VARCHAR2
) AS 
BEGIN

  MSG:='success';
  CD:='1';
exception
WHEN OTHERS THEN
MSG:= SQLERRM;
CD:= '0';
END CARRINV;

EN

回答 1

Stack Overflow用户

发布于 2016-09-30 00:09:32

这可能是您在记录器中的语法(请注意参数两边的引号)-尝试以下命令:

代码语言:javascript
复制
<logger message="#[payload['MSG']],#[payload['CD']]" level="INFO" doc:name="Logger"/>

另外,请尝试将db调用用大括号括起来:

代码语言:javascript
复制
<db:parameterized-query><![CDATA[{call user1.CARRINV(:MSG,:CD)}]]></db:parameterized-query>

添加引用:http://bushorn.com/mule-with-stored-procedure/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39773160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档