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;
/

 

發佈了28 篇原創文章 · 獲贊 11 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章