2016-12-30 3 views
2

입력 파일에 26 개의 열이 있고 파일로드 할 테이블에 6 개의 열만있는 것을 처리하려면 어떻게해야합니까? 그 중 일부 열 값은 CONSTANT 키워드를 사용하여 하드 코딩되고 FILLER를 사용하여 열을 건너 뜁니다.SQL 로더 입력 파일이 테이블보다 많습니다

웬일인지, 나는 그렇게 할 수 없다. 다음은 제어 파일 : 파일이로드 될 것입니다

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 
) 
+0

고마워, 나는 너의 제안으로 갔고, 아직도 나를 위해 일하지 않는다. 다음과 같은 오류 메시지가 나타납니다. SQL * Loader-404 : Column이 R2X1.RDA_PROD_CNTG의 INTO TABLE 블록에 두 번 이상 표시됩니다. – Adil

+0

이것이 사용중인 스크립트 인 경우 두 번 이상 지정된 열이 표시되지 않습니다. –

+0

그래, 문제가 잡히고, 나는 당신의 제안에 따라 열 이름을 2에서 filler2로 바꿨다. 숫자를 열 이름으로 받아들이지 않는 것 같습니다. 고맙습니다! – Adil