此Oracle CTL文件或数据有什么问题?
我的数据如下:此Oracle CTL文件或数据有什么问题?,oracle,oracle10g,oracle11g,sql-loader,Oracle,Oracle10g,Oracle11g,Sql Loader,我的数据如下: ID,SCORE_DATE,TYPE,SCORE,RAW_SCORE,RANK A1234,2012-09-05 23:59:59,FOOTBALL_TEAM_MIDDLE_AND_OLD_1234,10,0.123,1 A5678,2012-09-05 23:59:59,FOOTBALL_TEAM_MIDDLE_AND_OLD_1234,20,0.456,2 CTL文件: load data infile 'E:\Data\Sample.csv' bad
ID,SCORE_DATE,TYPE,SCORE,RAW_SCORE,RANK
A1234,2012-09-05 23:59:59,FOOTBALL_TEAM_MIDDLE_AND_OLD_1234,10,0.123,1
A5678,2012-09-05 23:59:59,FOOTBALL_TEAM_MIDDLE_AND_OLD_1234,20,0.456,2
CTL文件:
load data
infile 'E:\Data\Sample.csv'
badfile 'E:\Data\Sample.bad'
APPEND into table TABLE1
fields terminated by "," optionally enclosed by '"'
TRAILING NULLCOLS
(
DRIVER,
STARTDTE "to_date(SUBSTR(:STARTDTE,1,10),'YYYY-MM-DD') - 27",
TYPE CONSTANT 'FOOTBALL',
SCORE ,
RANKSCORE ":SCORE",
RANK ,
ENDDTE "to_date(SUBSTR(:STARTDTE,1,10),'YYYY-MM-DD')",
LOADDT "sysdate"
)
以下是我的表格结构:
CREATE TABLE "TABLE1"
(
"DRIVER" VARCHAR2(50 BYTE),
"STARTDTE" DATE,
"SCORE" NUMBER,
"ENDDTE" DATE,
"TYPE" VARCHAR2(20 BYTE),
"RANK" NUMBER,
"RANKSCORE" NUMBER,
"LOADDT" VARCHAR2(20 BYTE)
);
对于加载的每一行,我都会收到一条错误消息:
记录3:被拒绝-表1中的列分数错误。
ORA-01722:无效号码
怎么了
THIRD_COLUMN FILLER,
添加到控制文件以忽略该数据。类似于
load data
infile 'E:\Data\Sample.csv'
badfile 'E:\Data\Sample.bad'
APPEND into table TABLE1
fields terminated by "," optionally enclosed by '"'
TRAILING NULLCOLS
(
DRIVER,
STARTDTE "to_date(SUBSTR(:STARTDTE,1,10),'YYYY-MM-DD') - 27",
THIRD_COLUMN FILLER,
SCORE ,
RANKSCORE ":SCORE",
RANK ,
ENDDTE "to_date(SUBSTR(:STARTDTE,1,10),'YYYY-MM-DD')",
LOADDT "sysdate"
TYPE CONSTANT 'FOOTBALL',
)
应该修复您得到的错误
THIRD_COLUMN FILLER,
添加到控制文件以忽略该数据。类似于
load data
infile 'E:\Data\Sample.csv'
badfile 'E:\Data\Sample.bad'
APPEND into table TABLE1
fields terminated by "," optionally enclosed by '"'
TRAILING NULLCOLS
(
DRIVER,
STARTDTE "to_date(SUBSTR(:STARTDTE,1,10),'YYYY-MM-DD') - 27",
THIRD_COLUMN FILLER,
SCORE ,
RANKSCORE ":SCORE",
RANK ,
ENDDTE "to_date(SUBSTR(:STARTDTE,1,10),'YYYY-MM-DD')",
LOADDT "sysdate"
TYPE CONSTANT 'FOOTBALL',
)
应修复您遇到的错误。Rajesh很抱歉,这是一个打字错误,表中有一个“类型”列。你能再解释一下“填充物”部分吗?我希望插入一个常量“FOOTBALL”,而不是数据文件中的值。如果要忽略文件中的第三列,则需要指定忽略该列。这可以使用关键字“FILLER”来完成。编辑我的答案。拉杰什,第三栏是类型。我只想忽略数据文件中的数据,而插入'FOOTBALL'。第三列不是与TYPE分开的列。我使用了TYPE FILLER,然后键入常量'FOOTBALL',我得到一个错误SQL*Loader-404:列类型在表1的表块中多次出现。我仍然可以使用FILLER加载数据,然后运行SQL脚本更新这些记录。我想知道我是否可以只使用CTL文件就可以做到这一点。Rajesh-对不起,这是一个输入错误,表中有一个TYPE列。你能再解释一下“填充物”部分吗?我希望插入一个常量“FOOTBALL”,而不是数据文件中的值。如果要忽略文件中的第三列,则需要指定忽略该列。这可以使用关键字“FILLER”来完成。编辑我的答案。拉杰什,第三栏是类型。我只想忽略数据文件中的数据,而插入'FOOTBALL'。第三列不是与TYPE分开的列。我使用了TYPE FILLER,然后键入常量'FOOTBALL',我得到一个错误SQL*Loader-404:列类型在表1的表块中多次出现。我仍然可以使用FILLER加载数据,然后运行SQL脚本更新这些记录。我想知道我是否可以只用CTL文件就可以做到这一点。