gpt4 book ai didi

stored-procedures - 如何使用新的数据库端点从 Mule 3.5 调用存储过程

转载 作者:行者123 更新时间:2023-12-04 07:43:41 31 4
gpt4 key购买 nike

我正在使用存储过程测试 Mule 3.5 的 Mule 新数据库连接器...(引用:- http://www.mulesoft.org/documentation/display/current/Database+Connector).. 我有以下存储过程:-

ALTER PROCEDURE [dbo].[sp_retrieveData]
@Id int
AS
Select * from getData Where ID = @Id

这在 Mule 的旧 JDBC 连接器中运行良好......我曾经使用以下语法从 JDBC 端点调用存储过程:- <jdbc-ee:query key="RetriveQuery" value="CALL sp_retrieveData(${Id})"/>效果很好...但是现在问题出在 Mule 3.5 新数据库端点中,我无法调用相同的存储过程...我的 Mule 配置是:-
<db:stored-procedure config-ref="Generic_Database_Configuration" doc:name="Database">
<db:parameterized-query><![CDATA[CALL sp_retrieveData(58)]]></db:parameterized-query>
<db:in-param name="Id" type="INTEGER" value="58"/>
</db:stored-procedure>

所以,我的问题是如何使用新的数据库端点调用存储过程......有人试过吗???......请帮助......

更新:-
我得到以下异常:-
Exception stack is:
1. The index 1 is out of range. (com.microsoft.sqlserver.jdbc.SQLServerException)
com.microsoft.sqlserver.jdbc.SQLServerException:170 (null)
2. The index 1 is out of range. (com.microsoft.sqlserver.jdbc.SQLServerException). Message payload is of type: String (org.mule.api.MessagingException)
org.mule.module.db.internal.processor.AbstractDbMessageProcessor:81 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html)
--------------------------------------------------------------------------------
Root Exception stack trace:
com.microsoft.sqlserver.jdbc.SQLServerException: The index 1 is out of range.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:170)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setterGetParam(SQLServerPreparedStatement.java:698)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setObject(SQLServerPreparedStatement.java:928)
+ 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
********************************************************************************

最佳答案

IMO 最好的文档是它的测试。 DB 模块的存储过程测试在这里:https://github.com/mulesoft/mule/tree/mule-3.5.0/modules/db/src/test/resources/integration/storedprocedure

基于这些,以下应该起作用:

<db:stored-procedure config-ref="Generic_Database_Configuration">
<db:parameterized-query>{ call sp_retrieveData(:Id) }</db:parameterized-query>
<db:in-param name="Id" value="58" />
</db:stored-procedure>

(虽然我没有测试过)

关于stored-procedures - 如何使用新的数据库端点从 Mule 3.5 调用存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24123770/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com