您好,我无法将存储过程中的varchar值检索到我的mule流中。它总是返回空值。在mule和存储过程脚本中声明输出参数时,我遵循了相同的顺序。下面是我的mule流和一个示例存储过程脚本i'm using.Please help来解决这个问题。提前谢谢。
<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>
示例存储过程脚本
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;
发布于 2016-09-30 00:09:32
这可能是您在记录器中的语法(请注意参数两边的引号)-尝试以下命令:
<logger message="#[payload['MSG']],#[payload['CD']]" level="INFO" doc:name="Logger"/>另外,请尝试将db调用用大括号括起来:
<db:parameterized-query><![CDATA[{call user1.CARRINV(:MSG,:CD)}]]></db:parameterized-query>添加引用:http://bushorn.com/mule-with-stored-procedure/
https://stackoverflow.com/questions/39773160
复制相似问题