Oracle的Clob字段导出可直接执行的Sql脚本(包括超过13w+个字符的长度)

一.字符串缓冲区可容纳范围内

如果你的Clob字段不超过字符串的缓冲区最大值,那么只需要用下面这种方式即可。

declare
  V_SQL clob = '不超过字符串缓冲区最大值的字符串,大概3w左右';
begin
  -- 执行insert语句
  insert into TEST_TABLE(ID,TEST_CLOB) VALUES('1',V_SQL);
  -- 提交事务
  commit;
end;
/

二.CLOB超过了字符串缓冲区可容纳范围内

如果你的Clob字段超过字符串的缓冲区最大值,那么用下面这种方式即可。

declare
  V_SQL clob;
begin
  DBMS_LOB.CREATETEMPORARY(V_SQL, true);
  -- 需要将字符串拆分为多个缓冲区以内的字符串,然后逐个拼接
  DBMS_LOB.APPEND(V_SQL, '不超过字符串缓冲区范围的第一段');
  DBMS_LOB.APPEND(V_SQL, '不超过字符串缓冲区范围的第二段');
  -- 执行insert语句
  insert into TEST_TABLE(ID,TEST_CLOB) VALUES('1',V_SQL);
  -- 释放变量
  DBMS_LOB.FREETEMPORARY(V_SQL);
  -- 提交事务
  commit;
end;
/

 

你可能感兴趣的:(数据库)