姓名:杨宝秋,OCM,ACE。近8年的TB级数据库设计、建设、管理、运行维护、调优经验,也做了7年的Hp和IBM Rs6000的系统管理员,而且是获得了BCFP认证的SAN管理员,现为中国联通黑龙江分公司数据库主管。

sqlloader分隔符文件中有三个字段,是否将任意两个字段导入表中?

上一篇 / 下一篇  2008-01-31 08:22:09 / 个人分类:Oracle

applezh提问:

分隔符文件 是否可以指定字段

比如:
分隔符文件中有三个字段,是否将任意两个字段导入表中?


这个问题主要是filler关键字的使用问题,以一个5字段导入3个和测试来回答:

1、在qiuyb用户下建一张表,只包含A,C,E三个字段

SQL> show user
USER is "QIUYB"
SQL> desc t1
Name Null? Type
------------ -------- ---------------
A VARCHAR2(10)
C VARCHAR2(10)
E VARCHAR2(10)

2、包含数据的文件1.txt则有7个字段
$ cat 1.txt
"a","b","c","d","e","f","g"
"aaa","bb","c","d0","eee","f","gg"
"baa","db","f","d1","eee","f","gg"
"caa","eb","g","d2","eee","f","gg"
"daa","fb","h","d3","eee","f","gg"

3、编写control文件,使用filler关键字,把不需要的字段filler掉

$ cat 1.ctl
LOAD DATA
INFILE '1.txt'
INTO TABLE T1
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
(
a char(10),
b filler char(10),
c char(10),
d filler char(10),
e char(10),
f filler char(10),
g filler char(10)
)

4、执行sqlldr操作,可以见到成功导入5条记录

$ sqlldr qiuyb/qiuyb control=1.ctl log=1.log

SQL*Loader: Release 9.2.0.6.0 - Production on Sat Sep 9 12:23:29 2006

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

Commit point reached - logical record count 5

5、到库内查询,校验一下。

$ sqlplus qiuyb/qiuyb

SQL*Plus: Release 9.2.0.6.0 - Production on Sat Sep 9 12:24:08 2006

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


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production
With the Partitioning option
JServer Release 9.2.0.6.0 - Production

SQL> select * from t1;

A C E
---------- ---------- ----------
a c e
aaa c eee
baa f eee
caa g eee
daa h eee

SQL>

<完>


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

我的栏目

日历

« 2008-10-08  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 7476
  • 日志数: 64
  • 图片数: 1
  • 建立时间: 2008-01-30
  • 更新时间: 2008-07-29

RSS订阅

Open Toolbar