我想知道如何处理我的输入文件有26列的事实以及文件将加载到的表只有6列,其中一些列值需要使用CONSTANT关键字进行硬编码并跳过使用FILLER的列。
出于某种原因,我无法这样做。以下是控制文件:
LOAD DATA
TRUNCATE
INTO TABLE R2X1.RDA_PROD_CNTG
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
(
ITEM,
GLOBAL_DOMAIN_TYPE CONSTANT S
GLOBAL_ID CONSTANT 10
GLOBAL_DOMAIN_DESC CONSTANT 'Sales Forecast',
5 FILLER,
6 FILLER,
7 FILLER,
8 FILLER,
9 FILLER,
10 FILLER,
11 FILLER,
12 FILLER,
13 FILLER,
14 FILLER,
15 FILLER,
16 FILLER,
17 FILLER,
18 FILLER,
19 FILLER,
20 FILLER,
DOMAIN_ID,
DOMAIN_LABEL,
23 FILLER,
24 FILLER,
25 FILLER,
26 FILLER
)
将加载文件的表具有以下定义:
ITEM VARCHAR2(25 BYTE),
GLOBAL_DOMAIN_TYPE VARCHAR2(1 BYTE),
GLOBAL_ID NUMBER(3),
GLOBAL_DOMAIN_DESC VARCHAR2(50 BYTE),
DOMAIN_ID NUMBER(3),
DOMAIN_LABEL VARCHAR2(20 BYTE)
任何帮助将不胜感激!
答案 0 :(得分:1)
因为某些列是常量,并且文件中有26列,所以缺少3个填充列。包括它们,这应该有用。
LOAD DATA
--INFILE option missing. I'm not sure if you excluded it from the question
TRUNCATE
INTO TABLE R2X1.RDA_PROD_CNTG
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
(
ITEM,
GLOBAL_DOMAIN_TYPE CONSTANT 'S', --missing quotes and comma
GLOBAL_ID CONSTANT 10, --missing comma
GLOBAL_DOMAIN_DESC CONSTANT 'Sales Forecast',
filler2 FILLER,
filler3 FILLER,
filler4 FILLER,
filler5 FILLER,
filler6 FILLER,
filler7 FILLER,
filler8 FILLER,
filler9 FILLER,
filler10 FILLER,
filler11 FILLER,
filler12 FILLER,
filler13 FILLER,
filler14 FILLER,
filler15 FILLER,
filler16 FILLER,
filler17 FILLER,
filler18 FILLER,
filler19 FILLER,
filler20 FILLER,
DOMAIN_ID,
DOMAIN_LABEL,
filler23 FILLER,
filler24 FILLER,
filler25 FILLER,
filler26 FILLER
)