免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 873 | 回复: 0
打印 上一主题 下一主题

SQL*Loader简介 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-21 08:43 |只看该作者 |倒序浏览

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

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP