【问题标题】:jOOQ update returning clause with OraclejOOQ 使用 Oracle 更新返回子句
【发布时间】:2016-11-29 10:04:20
【问题描述】:

根据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 语句的返回类。

【问题讨论】:

    标签: oracle jooq


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2021-02-09
      • 2020-05-13
      • 1970-01-01
      • 2020-04-03
      • 2021-05-24
      • 1970-01-01
      • 2020-10-21
      • 1970-01-01
      • 2020-01-21
      相关资源
      最近更新 更多