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