我正在使用camel编写一些路由并在JBoss Fuse 6.2中运行它们 .
我想在SQL Server数据库中执行存储过程并读取输出参数的值 .
我这样做:
from("direct:WRITE_IN_STORED_PROCEDURE")
.to("sql:exec PROCEDIMIENTO_TEST 'TEST_DATA'?dataSource=dataSource")
.log(LoggingLevel.INFO, "[${body}]");
这条路由实际上是在数据库中写的,我检查过,根据存储过程逻辑,值'TEST_DATA'在数据库中 .
问题是:我不知道如何传递以及如何读取OUT参数 . “exec”调用不会将过程的结果放在正文中(就像我使用“select”时) .
我必须做什么?
谢谢!
2 回答
sql组件尚不支持存储过程 .
有一张票:https://issues.apache.org/jira/browse/CAMEL-4725
并且有代码在工作:https://github.com/apache/camel/pull/749
例如,您可以使用mybatis组件,因为mybatis支持调用存储过程:http://camel.apache.org/mybatis
语法应该与下面的db:mysql中的调用完全相似
与骆驼相似,你的路线现在看起来如下