SQL Loader 脚本帮助添加 SYSDATE、USER

2024-07-03

我正在尝试从文件加载数据,并且想将 CREATED_DATE 和 UPDATED_DATE 设置为 SYSDATE,将 CREATE_BY 和 UPDATED_BY 设置为 USER

这是我正在使用的表:

CREATE TABLE CATALOG
(CNO NUMBER,
CTITLE VARCHAR2(25),
CREATED_BY VARCHAR2(10) NOT NULL,
CREATED_DATE DATE NOT NULL,
UPDATED_BY VARCHAR2(10) NOT NULL,
UPDATED_DATE DATE NOT NULL,
CONSTRAINT CATALOG_PK Primary Key (CNO));

这是数据文件:

1,"Title 1"
2,"Title 2"
3,"Title 3"
4,"Title 4"
5,"Title 5"
6,"Title 6"

和我的控制文件:

LOAD DATA
 INFILE "mydata.csv"
 INTO TABLE CATALOG
 FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'    
 (CNO,CTITLE,CREATED_BY "USER", CREATED_DATE "SYSDATE", UPDATED_BY "USER", UPDATED_DATE "SYSDATE")

当我尝试使用 SQL Loader 加载它时...所有记录都被拒绝:

Record 1: Rejected - Error on table CATALOG, column CREATED_BY.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 2: Rejected - Error on table CATALOG, column CREATED_BY.
Column not found before end of logical record (use TRAILING NULLCOLS)
.......

有什么想法我做错了吗?提前致谢。


只需按照 Oracle 所说的操作即可:添加TRAILING NULLCOLS到你的控制文件:

LOAD DATA
 INFILE "mydata.csv"
 INTO TABLE CATALOG
 FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS  
 (CNO,CTITLE,CREATED_BY "USER", CREATED_DATE "SYSDATE", UPDATED_BY "USER", UPDATED_DATE "SYSDATE")

这是必需的,因为输入文件中只有前两列。剩下的完全是计算出来的。

如果您不指定它,Oracle 会尝试读取第三、第四等列,但找不到。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Loader 脚本帮助添加 SYSDATE、USER 的相关文章

随机推荐