文件:CASE1.CTL
LOAD DATA //控制文件的开始标志
INFILE CASE1.DAT
INTO TABLE dept
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
(deptno, dname, loc)//指出表的字段文件:CASE1.DAT
12,RESEARCH,"SARATOGA"
10,"ACCOUNTING",CLEVELAND
11,"ART",SALEM
13,FINANCE,"BOSTON"
21,"SALES",PHILA.
22,"SALES",ROCHESTER
42,"INT'L","SAN FRAN"
执行:sqlldr userid=bbb/bbb@lis control=case1.ctl log=case1.log
LOAD DATA //控制文件的开始标志
INFILE CASE1.DAT
INTO TABLE dept
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
(deptno, dname, loc)//指出表的字段文件:CASE1.DAT
12,RESEARCH,"SARATOGA"
10,"ACCOUNTING",CLEVELAND
11,"ART",SALEM
13,FINANCE,"BOSTON"
21,"SALES",PHILA.
22,"SALES",ROCHESTER
42,"INT'L","SAN FRAN"
执行:sqlldr userid=bbb/bbb@lis control=case1.ctl log=case1.log
解决方案 »
- 做一个关于触发器登记表修改信息的问题,新手请教!
- oracle西欧字符集
- 【在线请教】如何通过pl/sql简单实现把excel表数据批量导入Oracle中已创建的表?
- 还有人在吗?在线等?关于805控制文件的问题
- oracle基本语句
- 來者有分。。。。。。(討論)
- 在线等,如何用PowerDesigner导出oracle表中的数据为SQL脚本
- 怎么样用SQL LOADER装入含BLOB字段的数据
- 小弟再次提问(关于oracle数据库中几个表的连接)
- 我想做一个自增索引从99001开始没输入1条纪录自动增加1,请问这个SQL语句怎么写,谢谢!!
- 请教各位大侠ORACLE和PL/SQL事宜
- who 知道 sql的函数表达式!
SQL> create table test
(
id number, --序号
username varchar2(10), --用户名
password varchar2(10), --密码
sj varchar2(20) --建立日期
);2.创建SQL*Loader输入数据所需要的文件,均保存到C:\,用记事本编辑:
控制文件:input.ctl,内容如下: load data --1、控制文件标识
infile 'test.txt' --2、要输入的数据文件名为test.txt
append into table test --3、向表test中追加记录
fields terminated by X'09' --4、字段终止于X'09',是一个制表符(TAB)
(id,username,password,sj) -----定义列对应顺序a、insert,为缺省方式,在数据装载开始时要求表为空
b、append,在表中追加新记录
c、replace,删除旧记录,替换成新装载的记录
d、truncate,同上7、在DOS窗口下使用SQL*Loader命令实现数据的输入C:\>sqlldr userid=system/manager control=input.ctl
等间隔的文本文件。改变控制文件。
其他2位可能未明白我得意思:
文件是别人已经形成好了的,现假设有10列数据,我只想提取奇数列的数据,控制文件应该怎么写。
注意:文件不是定长的
假如你的文本文件有10列,那么你的表呢,是5列吗?
如
LOAD DATA
INFILE 'freebird.txt'
into table freebird
(field1 position(01:10) varchar2,
field2 position(20:30) varchar2,
field3 position(40:50) varchar2,
field4 position(60:70) varchar2)
INFILE 'freebird.txt'
into table freebird
(field1 position(01:10),
field2 position(20:30),
field3 position(40:50),
field4 position(60:70))还有你的问题,也可以编一个PERL小程序解决,很容易的,我可以
帮你把需要的列提取出来形成一个新的文本文件。而只要运行一下
PERL程序就可以了
还有你的方法行不通的,我说了,文件不是按间隔分开的,而是用tab键分开的,那么你的POSITION就派不上用场了啊。
写程序去处指定列,这确实可以,但我的文件是话单文件,很大,这样似乎有点不划算。还有其它办法吗?我的本意就是通过控制文件达到效果,帮忙
用来生成一个新的文本文件,这个新的文本文件让你导入到表里面。
即使你的10列的文本文件有100万行,我的PERL程序只要短短的几十秒就可以
完成。而且这样还可以避免在控制文件里判断那些要导入,那些不要导入的时间
上的浪费,有的时候非常影响速度。
到www.activeperl.com去下载一个PERL,然后再安装一下,也很快的,PERL是个
好东东!
ab 10 cd
ef 20 gh表AA结构
----------------------------------------- -------- -----------
NAME VARCHAR2(8)
SCORE NUMBER(2)
GS VARCHAR2(8)控制文件内容
load data
infile 'test.txt'
into table aa
(Name position(01:02),
score position(04:05),
gs position(07:08))
可否把你的文本列出来,一两行就够了,我看看给你一个解决的方案。