现在有这样一个从TXT导入到ORACLE的CTL文件,
在读取资料时出现SQL*Loader-350 语法错误于第6行.
预期值是 有效的列说明,","或")",而实际值是"VARCHAR2".
EMP_NO POSTION(1-8) VARCHAR2(8)
代码如下:
LOAD DATA
INFILE 'c:/20090302.txt'
TRUNCATE
INTO TABLE HRA_READ_CARD_DAY
(
EMP_NO POSITION(1-8) VARCHAR2(8),
MAC_NO POSITION(10-11) VARCHAR2(10),
WORK_DATE POSITION(13-22) VARCHAR2(16),
RC_DATE POSITION(24-28) VARCHAR2(16)
)
数据资料如下:
00049353 03 2009/02/28 12:04
00020434 03 2009/02/28 12:04
00026388 03 2009/02/28 12:05
00048085 03 2009/02/28 12:05
^
请各位帮忙查看原因,在检查时取值的范围没错,希望给予指点,谢谢!
在读取资料时出现SQL*Loader-350 语法错误于第6行.
预期值是 有效的列说明,","或")",而实际值是"VARCHAR2".
EMP_NO POSTION(1-8) VARCHAR2(8)
代码如下:
LOAD DATA
INFILE 'c:/20090302.txt'
TRUNCATE
INTO TABLE HRA_READ_CARD_DAY
(
EMP_NO POSITION(1-8) VARCHAR2(8),
MAC_NO POSITION(10-11) VARCHAR2(10),
WORK_DATE POSITION(13-22) VARCHAR2(16),
RC_DATE POSITION(24-28) VARCHAR2(16)
)
数据资料如下:
00049353 03 2009/02/28 12:04
00020434 03 2009/02/28 12:04
00026388 03 2009/02/28 12:05
00048085 03 2009/02/28 12:05
^
请各位帮忙查看原因,在检查时取值的范围没错,希望给予指点,谢谢!
INFILE 'c:/20090302.txt'
TRUNCATE
INTO TABLE HRA_READ_CARD_DAY
(
EMP_NO POSITION(1:8) VARCHAR2(8),
MAC_NO POSITION(10:11) VARCHAR2(10),
WORK_DATE POSITION(13:22) VARCHAR2(16),
RC_DATE POSITION(24:28) VARCHAR2(16)
)
00049353 03 2009/02/28 12:04
00020434 03 2009/02/28 12:04
00026388 03 2009/02/28 12:05
00048085 03 2009/02/28 12:05
而且上面的数据格式都是一样的,没有什么区别,如果要报错,就是取值有问题,
EMP_NO POSITION(1:8) VARCHAR2(8),
MAC_NO POSITION(10:11) VARCHAR2(10),
WORK_DATE POSITION(13:22) VARCHAR2(16),
RC_DATE POSITION(24:28) VARCHAR2(16)
中间用:与-是同样的道理,郁闷中,请各位帮忙测试下!
d:\>sqlplus /nologSQL*Plus: Release 10.2.0.4.0 - Production on 星期四 4月 2 09:35:48 2009Copyright (c) 1982, 2007, Oracle. All Rights Reserved.idle> conn scott/tiger
已连接。
scott@TEST> CREATE TABLE HRA_READ_CARD_DAY
2 (
3 EMP_NO VARCHAR2(8),
4 MAC_NO VARCHAR2(10),
5 WORK_DATE VARCHAR2(16),
6 RC_DATE VARCHAR2(16) );表已创建。scott@TEST> select * from hra_read_card_day;未选定行scott@TEST> host
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.d:\>sqlldr scott/tiger control=test.ctlSQL*Loader: Release 10.2.0.4.0 - Production on 星期四 4月 2 09:36:39 2009Copyright (c) 1982, 2007, Oracle. All rights reserved.达到提交点 - 逻辑记录计数 4d:\>exitscott@TEST> select * from hra_read_card_day;EMP_NO MAC_NO WORK_DATE RC_DATE
-------- ---------- ---------------- ----------------
00049353 03 2009/02/28 12:04
00020434 03 2009/02/28 12:04
00026388 03 2009/02/28 12:05
00048085 03 2009/02/28 12:05scott@TEST>
--使用了如下的ctl:
LOAD DATA
INFILE 'd:\20090302.txt'
TRUNCATE
INTO TABLE HRA_READ_CARD_DAY
(
EMP_NO POSITION(1-8),
MAC_NO POSITION(10-11),
WORK_DATE POSITION(13-22),
RC_DATE POSITION(24-28)
)