DBMS_LOB包LOADFROMFILE過程載入CLOB亂碼
在TOM的例子裡面看到使用LOADFROMFILE載入CLOB,但是使用的過程中出現了亂碼。
在10.2和11.2的版本中都出現相同的問題:
SQL> host echo 'test' > abc.txt
SQL> DECLARE
2 V_LOB CLOB;
3 V_FILE BFILE := BFILENAME('D_OUTPUT', 'abc.txt');
4 BEGIN
5 UPDATE T SET CONTENTS = EMPTY_CLOB RETURN CONTENTS INTO V_LOB;
6 DBMS_LOB.FILEOPEN(V_FILE);
7 DBMS_LOB.LOADFROMFILE(V_LOB, V_FILE, DBMS_LOB.LOBMAXSIZE);
8 DBMS_LOB.FILECLOSEALL;
9 COMMIT;
10 END;
11 /
PL/SQL 過程已成功完成。
SQL> select * from t;
ID NAME CONTENTS
---------- ---------- -----------------------------------------------
1 ABC 瑥獴
嘗試透過iconv改變檔案的格式,結果依舊。
從windows上裡面notepad寫入“test”字元後,分別儲存為unicode和utf-8編碼檔案,然後以文字方式ftp到當前伺服器,利用LOADFROMFILE載入後,也是亂碼:
SQL> DECLARE
2 V_LOB CLOB;
3 V_FILE BFILE := BFILENAME('D_OUTPUT', 'uni.txt');
4 BEGIN
5 UPDATE T SET CONTENTS = EMPTY_CLOB RETURN CONTENTS INTO V_LOB;
6 DBMS_LOB.FILEOPEN(V_FILE);
7 DBMS_LOB.LOADFROMFILE(V_LOB, V_FILE, DBMS_LOB.LOBMAXSIZE);
8 DBMS_LOB.FILECLOSEALL;
9 COMMIT;
10 END;
11 /
PL/SQL 過程已成功完成。
SQL> SELECT * FROM T;
ID NAME CONTENTS
---------- ---------- ---------------------------------------------
1 ABC ?琀攀猀琀
SQL> DECLARE
2 V_LOB CLOB;
3 V_FILE BFILE := BFILENAME('D_OUTPUT', 'utf.txt');
4 BEGIN
5 UPDATE T SET CONTENTS = EMPTY_CLOB RETURN CONTENTS INTO V_LOB;
6 DBMS_LOB.FILEOPEN(V_FILE);
7 DBMS_LOB.LOADFROMFILE(V_LOB, V_FILE, DBMS_LOB.LOBMAXSIZE);
8 DBMS_LOB.FILECLOSEALL;
9 COMMIT;
10 END;
11 /
PL/SQL 過程已成功完成。
SQL> SELECT * FROM T;
ID NAME CONTENTS
---------- ---------- --------------------------------------------
1 ABC ??敳
查詢了METALINK,發現果然是Oracle的bug,參考文件ID 562717.1。Oracle推薦在9.2如果載入CLOB,使用LOADCLOBFROMFILE來代替。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-624979/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 執行遠端DBMS_LOB包中過程
- 利用PLSQL包載入CLOB欄位SQL
- 解決dbms_lob.loadfromfile載入lob資料後出現亂碼的問題
- 執行DBMS_LOB包LOADCLOBFROMFILE過程出現ORA-6502錯誤
- DBMS_LOB的簡單用法以及釋放DBMS_LOB生成的臨時CLOB記憶體記憶體
- html載入過程HTML
- 類載入過程
- runtime載入過程
- JVM類載入過程JVM
- 原始碼包安裝過程原始碼
- springboot引導上下文載入過程和配置載入過程Spring Boot
- 頁面載入全過程
- java類的載入過程Java
- 類的載入過程概述
- 整理類載入的過程
- 動態庫載入過程
- web.xml 的載入過程WebXML
- R載入需要的程輯包:rJava ErrorJavaError
- dbms_lob儲存過程導致臨時表空間100%儲存過程
- 瀏覽器頁面載入過程瀏覽器
- JVM(六):探究類載入過程-下JVM
- Android HAL模組的載入過程Android
- JS 頁面載入過程問題JS
- 三-類的載入過程詳解
- 從SpringBoot原始碼分析 主程式配置類載入過程Spring Boot原始碼
- Spring原始碼剖析3:Spring IOC容器的載入過程Spring原始碼
- 虛擬機器類載入機制_類載入的過程虛擬機
- 從輸入 URL 到頁面載入全過程
- Android fragment 標籤載入過程分析AndroidFragment
- 【JVM進階之路】十三:類載入過程JVM
- 面試題總結: 類的載入過程面試題
- charles 抓包 https 亂碼HTTP
- JVM之類載入器、載入過程及雙親委派機制JVM
- Dubbo原始碼解析之SPI(一):擴充套件類的載入過程原始碼套件
- AB包載入
- 輸入密碼連線過程log密碼
- 超詳細講解頁面載入過程
- Java虛擬機器類載入的過程Java虛擬機