没有在 WSO2 ESB (DBLookup) 中获取 mysql 存储过程的参数 [英] Not getting out parameter of mysql Stored Procedure in WSO2 ESB (DBLookup)
本文介绍了没有在 WSO2 ESB (DBLookup) 中获取 mysql 存储过程的参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在 mysql 中创建了一个 SP,它接受 6 个输入参数并给出 2 个输出参数.我想从数据库查找中调用它.我不知道该怎么做.我尝试了不同的 2 代码,但没有运气.请帮忙.
I have created a SP in mysql which takes 6 input parameters and give 2 output parameters. I want to call this from DB lookup. I don't know how to do that. I have tried different-2 codes but no luck. please help.
突触代码:
<dblookup>
<connection>
<pool>
<driver>com.mysql.jdbc.Driver</driver>
<property name="autocommit" value="false"/>
<password>root</password>
<user>root</user>
<url>jdbc:mysql://localhost:3308/emp</url>
</pool>
</connection>
<statement>
<sql>
<![CDATA[call MANAGE_MANAGER_DETAIL(?,?,?,?,?,?,@RESULT_CODE, @RESULT_DESC)]]>
</sql>
<parameter expression="synapse:get-property('RequestNumber')" type="VARCHAR"/>
<parameter expression="synapse:get-property('RequestNumber')" type="VARCHAR"/>
<parameter expression="synapse:get-property('RequestNumber')" type="VARCHAR"/>
<parameter expression="synapse:get-property('RequestNumber')" type="VARCHAR"/>
<parameter expression="synapse:get-property('RequestNumber')" type="VARCHAR"/>
<parameter expression="synapse:get-property('RequestNumber')" type="VARCHAR"/>
</statement>
<statement>
<sql>
<![CDATA[SELECT @RESULT_CODE, @RESULT_DESC)]]>
</sql>
<result name="RESULT_CODE" column="RESULT_CODE"/>
<result name="RESULT_DESC" column="RESULT_DESC"/>
</statement>
</dblookup>
日志:
[2015-11-19 13:38:23,668] DEBUG - DBLookupMediator Setting as parameter : 6 value : 1 as JDBC Type : 12(see java.sql.Typepes)
[2015-11-19 13:38:23,669] DEBUG - DBLookupMediator Successfully prepared
statement :call MANAGE_MANAGER_DETAIL(?,?,?,?,?,?,@RESULT_CODE, @RESULT_DESC)
against DataSource : jdbc:mysql://localhost:3308/emp=[2015-11-19 13:38:23,679]
ERROR - DBLookupMediator Error executing statement :
call MANAGE_MANAGER_DETAIL(?,?,?,?,?,?,@RESULT_CODE, @RESULT_DESC) against
DataSource : jdbc:mysql://localhost:3308/emp
java.sql.SQLException: ResultSet is from UPDATE. No Data. at com.mysql.jdbc.ResultSet.next(ResultSet.java:6129)
at org.apache.commons.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:207)
at org.apache.commons.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:207)
at org.apache.commons.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:207
推荐答案
我认为 DBLookup 不支持您放置参数的方式.
I think that DBLookup does not support output parameters in the way you put them.
尝试得到这样的输出
<statement>
<sql>call getCompany(?)</sql>
<parameter expression="//m0:getQuote/m0:request/m0:symbol"
xmlns:m0="http://services.samples" type="VARCHAR"/>
<result name="company_id" column="id"/>
</statement>
查看链接以获取完整的样本.
这篇关于没有在 WSO2 ESB (DBLookup) 中获取 mysql 存储过程的参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文