我使用了oracle 10g,我有这个文件.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
怎么办?
答案 0 :(得分:5)
根据documentation, you need to use the EXPRESSION
keyword显示该值纯粹来自指定的表达式,并且不依赖于数据文件中的任何内容:
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
是数据文件中的一个字段,并且由于您没有指定数据类型,因此defaulting to char
为size 1
,这是第一个字符你真正的第一场。