2012-03-07 34 views
0

我以下面的方式使文本文件包含字段。从unix系统在oracle中加载文本文件

"64252368","7489040","305762", 
"64285217","8","787341", 

我正在使用下面的控制文件。

OPTIONS (SKIP=1) 
LOAD DATA 
TRUNCATE INTO TABLE test_table 
FIELDS TERMINATED BY '",' 

(
     LEARNEVENT_ID, 
     ORGANIZATION, 
     COURSE_ID 
) 

但是,我得到的错误:

Record 1: Rejected - Error on table test_table, column LEARNEVENT_ID 
ORA-01722: invalid number 

请帮助我就可以了。

回答

0

问题奠定了与“被终止,且字段的”引号”的数字的封装,“根本不剥去引号。

试试这个

OPTIONS(SKIP=1) 
LOAD DATA 
TRUNCATE INTO TABLE test_table 
FIELDS TERMINATED BY ',' 
TRAILING NULLCOLS 
(
    LEARNEVENT_ID "replace (:LEARNEVENT_ID ,'"', '')", 
    ORGINAZATION "replace (:ORGINAZATION ,'"', '')", 
    COURSE_ID "replace (:COURSE_ID ,'"', '')" 
) 
+0

好吧,那些只是数字,而是你应该使用本的解决方案。 – Benoit 2012-03-07 10:45:03

+0

该问题仅适用于数字。 – GuZzie 2012-03-07 11:49:56

2

您需要改变你的CTL文件,包括OPTIONALLY ENCLOSED BY选项。

OPTIONS (SKIP=1) 
LOAD DATA 
TRUNCATE INTO TABLE test_table 
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"' 
(
     LEARNEVENT_ID, 
     ORGANIZATION, 
     COURSE_ID 
) 

我建议reading了上SQL*Loader

+0

感谢Ben,当我试图在我的控制文件中使用封闭的时候,现在geeting低于错误。在TERMINATED和ENCLOSED字段后未找到终止符 – 2012-03-07 10:09:31

+0

如果数据以逗号结尾,则使用TRAILING NULLCOLS。删除此行,如果它不... – Ben 2012-03-07 10:11:49

+0

我的数据以逗号结尾。好心的建议我在这种情况下该怎么办? – 2012-03-07 10:23:40

相关问题