与Oracle的jOOQ更新返回子句

时间:2016-07-25 22:24:01

标签: oracle jooq

根据http://www.jooq.org/doc/3.8/manual/sql-building/sql-statements/update-statement/,jOOQ不支持除Firebird和Postgres之外的所有数据库的UPDATE语句中的返回子句。

有谁知道,对于拥有jOOQ的Oracle,这仍然是正确的吗?根据Oracle的文档,Oracle DB完全支持返回DELETE,INSERT或UPDATE语句的clase。

1 个答案:

答案 0 :(得分:1)

手册

不正确

你是对的 - 手册错了,应该修理:
https://github.com/jOOQ/jOOQ/issues/5470

单行UPDATE RETURNING

jOOQ 3.8增加了对单行UPDATE .. RETURNING语句的支持。在内部,它使用CallableStatement和形式为的PL / SQL块:

begin
  update "MY_TABLE"
  set "MY_TABLE"."COLUMN" = 'XYZ'
  where "MY_TABLE"."ID" = 1
  returning 
    "MY_TABLE"."ID", 
    "MY_TABLE"."COLUMN"
  into ?, ?;
  ? := sql%rowcount;
end;

相关问题是:
https://github.com/jOOQ/jOOQ/issues/5190

多行UPDATE RETURNING

自jOOQ 3.8起,尚未支持多行UPDATE .. RETURNING语句:
https://github.com/jOOQ/jOOQ/issues/5191