3

我使用了 oracle 10g,我有这个 file.ctl

OPTIONS (SKIP=1)
LOAD DATA
INFILE '/home/gxs/segmentation/sqlloader/datos.csv'
APPEND INTO TABLE test
(id "s_test.nextval",
name char(10) TERMINATED BY ',' ,
tel char(20) TERMINATED BY ',' ,
apellido char(10) TERMINATED BY ',' )

我的csv文件es

name,tel,apellido
daniel,12345,buitrago
cesar,98765,san
alex,4556,ova

但是当看到表格时,这个名字并不是第一个字符:

id   name   apellido   tel
1    aniel  buitrago   12345
2    esar   san        98765
3    lex    ova        4556

做什么?

4

1 回答 1

5

根据文档,您需要使用EXPRESSION关键字来表明该值纯粹来自指定的表达式,并且不依赖于数据文件中的任何内容:

OPTIONS (SKIP=1)
LOAD DATA
INFILE '/home/gxs/segmentation/sqlloader/datos.csv'
APPEND INTO TABLE test
(id EXPRESSION "s_test.nextval",
name char(10) TERMINATED BY ',' ,
tel char(20) TERMINATED BY ',' ,
apellido char(10) TERMINATED BY ',' )

...插入:

        ID NAME       TEL        APELLIDO
---------- ---------- ---------- ----------
         1 daniel     12345      buitrago
         2 cesar      98765      san
         3 alex       4556       ova

目前它假设ID是您的数据文件中的一个字段,并且由于您没有指定数据类型,它默认为charsize 1这正在消耗您真正的第一个字段的第一个字符。

于 2013-09-23T07:06:09.073 回答