大家早上好,
当有必要在MuleEE 3.4中执行 Oracle存储过程时,我有一个关于mule behviour的问题。
在我的应用程序中,我应该调用Oracle数据库中的存储过程,我应该传递一个输入变量(mule消息id),并且此过程应该在存储过程中也传递的输出变量中返回值(0) as out 变量。下面的代码显示了这一点:
<jdbc-ee:outbound-endpoint exchange-pattern="request-response" queryTimeout="-1" connector-ref="JdbcConnector" doc:name="Database" queryKey="CallProcedure">
<jdbc-ee:query key="CallProcedure" value="Call analyze_buffer_sbil_zonali(#[#[message.outboundProperties['massageID']];string;in],#[mules2;int;out])"/>
</jdbc-ee:outbound-endpoint>
问题是当我尝试超越此查询时出现此错误:
Root Exception stack trace:
java.sql.SQLException: Parameter IN or OUT missing in the index:: 2
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.OraclePreparedStatement.processCompletedBindRow(OraclePreparedStatement.java:1680)
+ 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
我真的不知道如何抛出此异常。我遵循了mule文档(JDBC Transport Reference)并尝试了此查询的其他变体,但没有发生任何变化。
我已经停止了开发,我不知道如何在不使用实现此行为的Java类的情况下继续。
有人有什么想法吗?
我期待着听到你, 非常感谢你提前