Oracle數據庫中包含CLOB字段表的導出和導入


1.表的導出和導入

因為oracle中存儲大量數據的CLOB字段默認是不導出的,所以在導出時需要特別設置一下。

我使用DBVisualizer這個工具進行導出和導入。

 

軟件版本:

DBVisualizer Pro 10.0.16

導出表

Connections ->(數據庫名稱)-> Schemas -> (用戶名)-> Tables -> (表名)
鼠標右鍵-》Export Table ...

Settings選項設置

Output Format 選擇 CSV

  導出為SQL文件會有超過4000報錯的情況,所以這里導出文件為CSV文件
Output Destination 選擇 File 指定導出的文件路徑

 

 

點擊 Data Format Settings 按鈕

Binary/BLOB 選擇 Value

  默認是不導出
CLOB 選擇 Value

  默認是不導出
Quote Text Value 選擇 None

  默認是雙引號把值括起來,這樣的在導入時會將雙引號也導入,所以不對值加雙引號
點擊 Ok

 

點擊 Export 導出完成,生成一個CSV文件

 

導入表

Connections ->(數據庫名稱)-> Schemas -> (用戶名)-> Tables -> (表名)
鼠標右鍵-》Import Table Data...
Next -> Next

這里需要注意一下:這里可以修改數據格式,自動識別的時候可能會將Number類型的識別為Boolean類型,導致導入報錯,如果報錯,則查看這里是否和數據庫中格式一致,如果不一致的則進行修改:

Data -> Grid -> 點擊數據類型進行修改

 

 

Next -> Next -> Import 導入完畢,查看結果,如果有錯誤則進行排查

 

導出為SQL文件會有超過4000報錯的情況,所以這里導出文件為CSV文件。

 

2.CLOB類型字段的插入SQL如何寫?

oracle會把插入的字符串作為 “字符串類型”處理,由於oracle有最大字符串限制(不超過4000個字符),所以會報錯。

使用PL/SQL進行插入,不需要進行字符串的分割

語法如下:

DECLARE
自定義名稱 CLOB := '大於4000的數據';
BEGIN
INSERT INTO 表名稱(...,字段名稱,...) VALUES(...,自定義名稱,...);

COMMIT;
END;

 

例如:test表中的bigdata字段類型為CLOB,則插入語句

DECLARE
bname CLOB := 'clobdata';
BEGIN
INSERT INTO test(bigdata) VALUES(bname);

COMMIT;
END;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM