使用sqllder从csv导入数据到oracle
一、关于CSV文件添加到ORACLE的学习体会
我有一个EXCEL的文件Prize_VS.xls,由姓名、身份证编号、通信地址、邮政编码四列组成,在EXCEL中将Prize_VS.xls另存为Prize_VS.csv,现在来向我的ORACLE服务器上的表增加数据。
进行最后操作前,在Prize_VS.csv所在的目录下新建文本文件input.ctl,内容为:
load data
infile 'Prize_VS.csv'
append into table 方案名.Prize_VS
trailing nullcols
(NAME terminated by ",",
IDCARD terminated by ",",
ADDREASS terminated by ",",
POSTALCODE terminated by ",")
保存后在DOS方式进入input.ctl所在的目录下执行sqlldr命令:
sqlldr 用户名/密码@服务名 control=input.ctl
OK后可以在input.log文件中看到执行的具体记录,有问题的数据则集中在Prize_VS.bad,你可以在修改后继续上一步的操作,直到你满意为止。
该体会来源于:http://topic.csdn.net/t/20011130/16/396991.html
二、使用sqllder导csv文件时,如果某一栏位的值来源于sequence,在导入时该如何指定该栏位的值?
比如,现在是使用sqllder从csv文件向表test导入数据,其中test有field_a, field_b, field_c三个栏位,并且field_c的值来源于sequence_field_c;那么控制文件可这样写:
======================================================
LOAD DATA
INFILE 'C:\test.csv '
TRUNCATE INTO TABLE test
FIELDS TERMINATED BY ', '
(field_a, field_b, field_c "sequence_field_c.nextval")
======================================================