WEB开发网
开发学院数据库Oracle 简述数据库导入Oracle SQL*Loader指南 阅读

简述数据库导入Oracle SQL*Loader指南

 2008-09-02 12:47:15 来源:WEB开发网   
核心提示: LOADDATAINFILE’mydata.dat’BADFILE’mydata.bad’DISCARDFILE’mydata.dis’APPENDINTOTABLEmy_selective_tableWHEN(01)

LOADDATA 
INFILE’mydata.dat’BADFILE’mydata.bad’ 
DISCARDFILE’mydata.dis’ 
APPEND 
INTOTABLEmy_selective_table 
WHEN(01)<>;’H’and(01)<>;’T’ 
and(30:37)=’19991217’ 
( 
regionCONSTANT’31’, 
service_keyPOSITION(01:11)INTEGEREXTERNAL, 
call_b_noPOSITION(12:29)char 
)

导入时跳过某些字段:

可用 POSTION(x:y) 来分隔数据在Oracle8i中可以通过指定FILLER字段实现。FILLER 字段用来跳过、忽略导入数据文件中的字段。如:

LOADDATA 
truncateINTOTABLET1 
FIELDSTERMINATEDBY’,’ 
(field1, 
field2FILLER, 
field3 
)

导入多行记录:

可以使用下面两个选项之一来实现将多行数据导入为一个记录:

CONCATENATE:-usewhenSQL*Loadershouldcombine 
thesamenumberofphysicalrecordstogether 
toformonelogicalrecord
CONTINUEIF-useifaconditionindicates 
thatmultiplerecordsshouldbetreatedas 
oneEgbyhavinga’#’characterincolumn1

SQL*Loader 数据的提交

一般情况下是在导入数据文件数据后提交的。也可以通过指定 ROWS= 参数来指定每次提交记录数。

提高 SQL*Loader 的性能:

(1) 一个简单而容易忽略的问题是,没有对导入的表使用任何索引和/或约束(主键)。如果这样做,甚至在使用ROWS=参数时,会很明显降低数据库导入性能。

(2) 可以添加 DIRECT=TRUE来提高导入数据的性能。当然,在很多情况下,不能使用此参数。

(3) 通过指定 UNRECOVERABLE选项,可以关闭数据库的日志。这个选项只能和 direct 一起使用。

(4) 可以同时运行多个导入任务。

常规导入与direct导入方式的区别:

常规导入可以通过使用 insert语句来导入数据。Direct导入可以跳过数据库的相关逻辑(DIRECT=TRUE),而直接将数据导入到数据文件中。

上一页  1 2 3 4 

Tags:简述 数据库 导入

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接