我尝试从插入中获取生成的密钥。但我得到了oracle.sql.ROWID
。
<route id="myroute">
<from uri="direct:myroute" />
<camel:setHeader headerName="CamelSqlRetrieveGeneratedKeys">
<simple>true</simple>
</camel:setHeader>
<to uri="sql-db:{{myquery}}"/>
</route>
我的SQL:
INSERT INTO MY_TABLE (ID, name, description) VALUES(MY_SEQUENCE.NEXTVAL, :#NAME, :#DESCRIPTION)
但是收到oracle.sql.ROWID
。我的标题值:
{CamelSqlGeneratedKeyRows=[{ROWID=oracle.sql.ROWID@4e9adff2}], breadcrumbId=ID-VAIO-17584-1456233791521-0-9 ...
ROWID不是数字...来自行的地址:(有价值AABNPdAAOAAC0AOAAB
。
那么,如何使用camel-sql获取生成的密钥(序列值)?
我必须使用
从双
中选择MY_SEQUENCE.currval
? :(
感谢。
Camel 2.16.2
Spring 4.1.5
JDK 1.7-1.8
Oracle 11g
答案 0 :(得分:0)
返回基本上是带Statement的preparedStatment返回。 RETURN_GENERATED_KEYS作为另一个参数,它可以检索生成的密钥。您可以使用普通的Java.sql准备语句运行查询并检查那里发生了什么。您应该能够在没有第二个查询的情况下获取详细信息。