SQL*Loader是Oracle数据库导入外部数据的一个工具。它和DB2的Load工具相似,但有更多的选择,它支持变化的加载模式,可选的加载及多表加载。
如何使用 SQL*Loader 工具
我们可以用Oracle的sqlldr工具来导入数据。例如:
sqlldr scott/tiger control=loader.ctl
控制文件(loader.ctl) 将加载一个外部数据文件(含分隔符)loader.ctl如下:
load data infile 'c:datamydata.csv' into table emp fields terminated by "," optionally enclosed by '"' ( empno, empname, sal, deptno )
mydata.csv 如下:
10001,"Scott Tiger", 1000, 40 10002,"Frank Naude", 500, 20
下面是一个指定记录长度的示例控制文件。"*" 代表数据文件与此文件同名,即在后面使用BEGINDATA段来标识数据。
load data infile * replace into table departments ( dept position (02:05) char(4), deptname position (08:27) char(20) ) begindata COSC COMPUTER SCIENCE ENGL ENGLISH LITERATURE MATH MATHEMATICS POLY POLITICAL SCIENCE
Unloader这样的工具
Oracle 没有提供将数据导出到一个文件的工具。但是,我们可以用SQL*Plus的select 及 format 数据来输出到一个文件:
set echo off newpage 0 space 0 pagesize 0 feed off head off trimspool on spool oradata.txt select col1 || ',' || col2 || ',' || col3 from tab1 where col2 = 'XYZ'; spool off
另外,也可以使用使用 UTL_FILE PL/SQL 包处理:
rem Remember to update initSID.ora, utl_file_dir='c:oradata' parameter declare fp utl_file.file_type; begin fp := utl_file.fopen('c:oradata','tab1.txt','w'); utl_file.putf(fp, '%s, %sn', 'TextField', 55); utl_file.fclose(fp); end; /
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com)[next]
当然你也可以使用第三方工具,如SQLWays ,TOAD for Quest等。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com)加载可变长度或指定长度的记录:
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com)LOAD DATA INFILE * INTO TABLE load_delimited_data FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS ( data1, data