下面是我尝试用来将数据从输入文件加载到Oracle的Sql加载程序控制脚本。我遇到了COL3的问题,这是DATATABLE中的日期数据类型。数据在文件中采用Timestamp格式。
错误我得到的是" ORA-00907:缺少右括号"。
load data
INFILE 'C:\datafile.txt'
INTO TABLE DATATABLE
APPEND
FIELDS TERMINATED BY '|'
(
COL1,
X FILLER,
COL2 FLOAT,
Y FILLER,
Z FILLER,
COL3 DATE(10) "TRUNC(TO_TIMESTAMP(:COL3,'MM/DD/YYYY'))",
COL4,
COL5 "MM/DD/YYYY HH:MI:SS PM")
// C:\ datafile.txt
1234567|.59999999999999999|.39999999999999999|240.74000000000001|USER1|11/29/2016 12:00:00 AM|USER1|11/29/2016 12:00:00 AM
我用下面的sql测试了输出,这似乎是正确的:
select TRUNC(to_timestamp('JAN 29 2016 12:00:00 AM', 'MON DD YYYY HH:MI:SS:FF3 PM')) FROM DUAL ;
任何帮助都将不胜感激。
答案 0 :(得分:2)
尝试那样(我不能在这台电脑上试试)
load data
INFILE 'C:\datafile.txt'
INTO TABLE DATATABLE
APPEND
FIELDS TERMINATED BY '|'
(
COL1,
X FILLER,
COL2 FLOAT,
Y FILLER,
Z FILLER,
COL3 DATE 'MM/DD/YYYY HH:MI:SS AM',
COL4,
COL5 DATE 'MM/DD/YYYY HH:MI:SS AM')
数据文件中的日期格式不是时间戳。这是oracle的正常日期格式。因此,您不必尝试将其转换为时间戳