基于PLSQL的数据库备份方法
關鍵詞:?
PLSQL?數據備份?CLOB?BLOB?
?
如何解決導出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、
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的數據
總結
以上是生活随笔為你收集整理的基于PLSQL的数据库备份方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 清除浮动解决高度坍塌的5种方法 以及兼容
- 下一篇: mysql5.6 centos_cent