sql *loader

 SQL*Loader 简介

SQL*Loader从文本文件导数据到数据库中。功能包括:


从定界文件装数据


从固定长度的文本文件装数据


从二进制文件装数据


在输入文件中过滤数据


SQL*Loader使用的数据类型


Char:该char和数据库中的char类型不同,它包括数据库中的charvarcharCLOB等类型


Date:时间类型


Interger external:定义整数值


Decimal external:定义包括小数点的数值



装载字段固定长度的文件


一个例子:


Load data


infile ‘yyb_data.txt’


append


Into table emp


( name position(1:10) char,


rank position(11:13) interger external,


birthday position(13:23) date “dd-mm-yyyy”


)


导入有界定符的文件


一个例子:


Load data


Infile ‘c:\yyb.txt’


append


Into table emp


( name char terminated by ‘,’,


rank interger external terminated by ‘,’,


birthday date “dd-mm-yyyy” terminated by ‘,’


)


导入有界定符的文件 ()


再看一个例子(处理空字段):


Load data


Infile ‘c:\yyb.txt’


append


Into table emp


trailing nullcols


( name char terminated by ‘,’,


rank interger external terminated by ‘,’,


birthday date “dd-mm-yyyy” terminated by ‘,’ )


如何把数据放到表中


从前面的例子中可以看出,它们都包含关键字append,还有其它的关键字:


Insert:指定要装载的是空表,否则失败


Append:添加数据到表,即使表中有数据


Replace:加载前,将删除表中的所有数据


Truncate:与replace


使用SQL*Loader命令和参数


命令语法为:


sqlldr [param=value [,param= valus … ] ]


参数:


Userid 用户名和密码


Control 指定控制文件名,也就是存放前面的胶片中的代码的文件


Log 指定日志文件名


Bad 指定存放坏记录的文件名


SQL*Loader参数(续前)


Data 指定数据文件名


Skip 允许跳过的记录数量


Load 允许装入的记录数量


Errors 指定允许的错误数


Rows 指定装载多少条记录提交一次


Direct 可以指定为直接路径装载


Parfile 指定包含命令参数的文件名


举个例子来说明:


(1)先创建一张表:


create table test_load(
stu_num number(10,0),
stu_name varchar2(50),
stu_date date
)


(2)准备数据文件(可以采用spool导出,再下来会讲到): dateFile.txt


"1234","niegc","2006-01-01"
"1235","ngc","2006-01-02"


(3)写控制文件(必须注意每一个字段的位置,和时间字段的格式):loader.ctl


Load data
infile 'F:\test\dateFile.txt'
Append into table test_load
fields Terminated by "," Optionally enclosed by'"'
(
stu_num,
stu_name,
stu_date date "YYYY-MM-DD"
)



(3)执行sqlldr



C:\Documents and Settings\Administrator>sqlldr niegc/niegc control=f:\test\loader.ctl log=f:\test\aaaaaa.log


SQL*Loader: Release 9.2.0.1.0 - Production on 星期三 4月 26 22:06:35 2006


Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.


达到提交点,逻辑记录计数2



成功了,是不是很简单,append 还是insert 上面有说明的哦.




4.Spool简介


spool 是数据的导出命令,最简单的执行如下:


用sqlplus 登陆:


SQL>spool f:\test\bbb.txt


SQL> select * from test_load;


STU_NUM STU_NAME STU_DATE
---------- -------------------------------------------------- ----------
1234 niegc 01-1月 -06
1235 ngc 02-1月 -06


SQL> spool off



这样就可以导出了


如果你想导出自己定义的格式,你可以先set 参数然后再spool


例如:


SET COLSEP ' '
SET ECHO OFF
SET FEEDBACK OFF
SET HEADING OFF
SET PAGESIZE 0
SET LINESIZE 1000
SET NUMWIDTH 12
SET TERMOUT OFF
SET TRIMOUT ON
SET TRIMSPOOL ON

你可能感兴趣的:(sql *loader)