日期:2014-05-16  浏览次数:20942 次

用sqlldr把本地的txt文件导入到有主键的表怎么做?????
在oracle数据库中有一个表User(id(主键),name,password)

现在我要用sqlldr把本地的txt文件导入到这个表中,由于oracle数据库中不能自动生成主键,
我的User.ctl文件该怎么写,我建了一个序列seq_user_id
在txt文件中如下:
seq_user_id.nextval,张三,124
seq_user_id.nextval,小三,1355

ctl文件如下:
OPTIONS (SILENT = (ALL),DIRECT=TRUE,PARALLEL=TRUE)
UNRECOVERABLE
LOAD DATA INFILE 'E:\User.txt'
APPEND INTO TABLE TB_DISKINFO
FIELDS TERMINATED BY ','
TRAILING NULLCOLS
(id
,name
,password
)

可是这样不行啊,请求大侠?????

------解决方案--------------------
建议发到oracle版
------解决方案--------------------
首先肯定不是在txt文件里写Seq名,这是数据文件。就算要写,也应该是ctrl文件里写,试试这样


OPTIONS (SILENT = (ALL),DIRECT=TRUE,PARALLEL=TRUE)
UNRECOVERABLE
LOAD DATA INFILE 'E:\User.txt'
APPEND INTO TABLE TB_DISKINFO
FIELDS TERMINATED BY ','
TRAILING NULLCOLS
(id "seq_user_id.nextval"
,name
,password
)


如果上述方式不可以,建议针对该字段设置一个触发器,在导入后自动赋值
如果这样还不行,那就先把这个字段给干掉再导