我想玩新的 jOOQ 块语句功能。我的用例相当简单。至少我是这么认为的;-)
我想将以下 SQL 语句作为匿名块执行
DECLARE
v_clobdata clob;
Begin
select t.clob_field into v_clobdata from TEST.MY_TABLE t where t.id = 1 for update;
DBMS_LOB.append(dest_lob => v_clobdata , src_lob => 'append_this');
update TEST.MY_TABLE t set t.clob_field n = v_clobdata where t.id = 1;
END;
但我不知道如何用 jOOQ 编写 DBMS_LOB.append 调用。到目前为止,我得到了这个:
String textToAppend = "append_this";
long id = 1L;
final MY_TABLE t = MY_TABLE .as("t");
final Variable<String> clobdata = var("v_clobDaten", SQLDataType.CLOB);
create.begin(
declare(clobDaten),
clobdata.set(select(t.CLOB_FIELD).from(t).where(t.ID.eq(id)).forUpdate()),
//how "DBMS_LOB.append(dest_lob => v_clobDaten, src_lob => 'append_this')
update(t).set(t.CLOB_FIELD, clobdata ).where(t.ID.eq(id))
).execute();