首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取存储过程camel-sql的输出参数。

获取存储过程camel-sql的输出参数。
EN

Stack Overflow用户
提问于 2016-01-08 22:13:31
回答 2查看 2.6K关注 0票数 0

我正在使用骆驼编写一些路线,并在JBoss Fuse 6.2中运行它们。

我希望在Server数据库中执行存储过程,并读取输出参数的值。

我要做的是:

代码语言:javascript
复制
from("direct:WRITE_IN_STORED_PROCEDURE")
    .to("sql:exec PROCEDIMIENTO_TEST 'TEST_DATA'?dataSource=dataSource")
    .log(LoggingLevel.INFO, "[${body}]");

根据存储过程逻辑,这个路径实际上是写入数据库的,我检查了它,并且值'TEST_DATA‘在数据库中。

问题是:我不知道如何传递和如何读取OUT参数。"exec“调用并不是将过程的结果放在主体中(就像我使用”select“时一样)。

我该怎么做?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-09 09:40:51

sql组件还不支持存储过程。

有一张票:https://issues.apache.org/jira/browse/CAMEL-4725

现在正在编写代码:https://github.com/apache/camel/pull/749

例如,您可以使用mybatis组件,因为mybatis支持调用存储过程:http://camel.apache.org/mybatis

票数 1
EN

Stack Overflow用户

发布于 2016-01-08 22:38:58

语法应该与下面db : mysql中的调用完全类似。

代码语言:javascript
复制
mysql>delimiter // 
mysql>create procedure selectusers(out param1 int) begin select count(*)
   from mysql.user; end//
mysql> delimiter ;
mysql> call selectusers(@param1);
+----------+
| count(*) |
+----------+
|        2 |
+----------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

同样地,从骆驼上看,您的路线如下所示

代码语言:javascript
复制
<to uri="sql:exec call selectusers(@param1)?datasource=datasource/>
The result if you print would be as below
[) thread #0 - file://src/data/] rhalling-unmarshalling-exmaple INFO  [{count(*)=2}]
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34687004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档