oracle导出blob,clob出错的问题
2015-08-14 18:25
561 查看
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的数据。
当表字段中含有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的数据。
相关文章推荐
- Oracle创建表空间、创建用户以及授权、查看权限
- 使用Apache JMeter对SQL Server、Mysql、Oracle压力测试(四)
- win7 or xp 下oracle 导入or导出
- oracle 根据一个表生成另一个新表和一个现有表给一个新的表赋值
- oracle 操作表
- oracle 分组后,求和
- 重装Oracle 10g RAC如何干净的清理系统
- 使用Apache JMeter对SQL Server、Mysql、Oracle压力测试(三)
- 配置 Oracle 11g侦听器来使用SQL操作ST_Geometry(DLL路径问题)
- Windows下Oracle数据库自动备份批处理脚本
- 使用Apache JMeter对SQL Server、Mysql、Oracle压力测试(二)
- 蓝色的成长记录——追逐DBA(8):为了夺回SP报告,回顾oracle的STATSPACK实验
- Oracle rman中restore和recover的区别
- Oracle导入:转储文件可能是原始的导出文件
- 使用Apache JMeter对SQL Server、Mysql、Oracle压力测试(一)
- Oracle 11g安装图文攻略
- Oracle 11g系统自动收集统计信息的一些知识
- oracle server配置:监听程序未启动或数据库服务未注册到该监听程序
- sap使用DB13和brtools发起oracle数据库备份
- 简析Oracle数据库常见问题及解决方案