oracle導出blob,clob出錯的問題


2.3 如何解決導出clob和blob類型數據報錯的問題

當表字段中含有clob和blob類型數據時,使用PL/SQL Developer導出會報stream read error的錯誤,導出操作終止,說明PL/SQL Developer方式導出不支持這種類型,oracle export方式可以支持這種類型。 由於需要導出的表很多,PL/SQL在導出前都要對需要導出的表進行分析,通常都會花費十幾分鍾的時間,然而由於某張表存在clob和blob類型數據時就會異常終止,那之前的操作時間就會浪費,為了導出所有表需要將導出的表進行標記,只導出沒有clob和blob類型數據的表。我們通常的做法是在導出表的時候用ctrl或者shift按鍵進行手工選擇,通過導出的日志記錄不能導出的表,然后手工將這些表反選出待導出的表。但是這樣操作費時費力,需要通過不停反復的操作,才能知道哪些表不能導出。 下面介紹一下如何使用oracle系統視圖all_tab_columns和PL/SQL在導出表的時候提供的Object selection功能快速導出不包含clob和blob的表數據。

1、使用下面的sql語句拼出Object selection的文件內容。

 --不包含clob和blob的表 select distinct('TABLE "'||a.OWNER ||'"."'||a.TABLE_NAME||'"') from sys.all_tab_columns a where  a.OWNER = 'ICDPUB' and a.TABLE_NAME not in (select t.TABLE_NAME from sys.all_tab_columns t where t.OWNER = 'ICDPUB' and t.DATA_TYPE in ('CLOB','BLOB')) 

注意:上面的sql語句里的ICDPUB是用戶名

2、按照上面的語句的執行結果生成Object selection的文件(后綴是.osf),文件的內容如下:   

PL/SQL Developer Object Selection File 1

TABLE "ICDPUB"."ACTIVE_ALARMS"

TABLE "ICDPUB"."ALLAPPOINT"

TABLE "ICDPUB"."ALLOPTIONVIEW"

TABLE "ICDPUB"."ALLOTCONFIG"

TABLE "ICDPUB"."ALLPAPERAUTHVIEW"

TABLE "ICDPUB"."ALLPAPERVIEW"

TABLE "ICDPUB"."ALLQUESTIONVIEW"

3、在導出表功能的表選擇框里單擊右鍵選擇“Load Object selection”,選擇上一步制作的文件,完成表的選擇。

4、選擇合適的參數,進行導出操作。

5、用oracle export方式導出包含clob和blob的數據。


免責聲明!

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



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