您的位置:首页 > 数据库

基于PLSQL的数据库备份方法

2017-06-15 13:34 190 查看
关键词: 

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 clob blob