plsql导出大字段数据方法

时间:2025-02-10 20:30:57

Create 

tables

:支持在导入数据前先创建表,比如我们已将建好了用户,这个时候需要

导入表而之前又没有执行建表脚本的时候,可以选中此项。

 

 

Truncate 

tables

:支持在导入数据前先清空表数据,想恢复表数据到建测试环境的时候

可以使用这个选项,该选项和“

Delete tables

”互斥。

 

 

Delete 

tables

:支持在导入数据前删除表数据,这个选项目前还没有发现比较特殊的使

用意义,该选项和“

Truncate tables

”互斥。该选项的导入速度大大慢于“

Truncate tables

一般使用“

Truncate tables

 

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.TABLE_NAME||'"') 

from 

sys.all_tab_columns 

where 

 

 

'ICDPUB' 

and 

a.TABLE_NAME 

not 

in 

(select 

t.TABLE_NAME 

from 

sys.all_tab_columns 

where 

 

'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

的数据。