我正在尝试从insert获取生成的密钥。但我得到了一个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
发布于 2016-02-23 16:02:19
返回基本上是带有语句的preparedStatment返回。RETURN_GENERATED_KEYS作为另一个参数,它使您能够检索生成的keys.Can,您可以使用普通的Java.sql准备语句运行查询,并检查那里发生了什么。无需进行第二个查询,您就应该能够获得详细信息。
https://stackoverflow.com/questions/35580953
复制相似问题