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
a
where
=
'ICDPUB'
and
a.TABLE_NAME
not
in
(select
t.TABLE_NAME
from
sys.all_tab_columns
t
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
的数据。