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;