SQLLDR - problem mit WENN-Klauseln

Habe ich mehrere when-Klauseln in meinem control-Datei, die Daten, die ich bin laden in die Hälfte von Ihnen erfüllt, wenn die Klauseln und eingefügt wird in die gewünschte Tabelle. Die andere Hälfte nicht (was ich erwarte), aber ich hatte erwartet, dass die Daten, die nicht erfüllen, wenn die Bedingungen werden in einer Datei verwerfen, aber es wird keines erstellt.

Irgendwelche Ideen?

LOAD DATA
INFILE '/u04/app/vpht_app/flat_files/icr_load/marc/sqlldr_load/CSSO_CCRBSCREDENTIALS_COMSUMER23062010160322.txt'
BADFILE '/u04/app/vpht_app/flat_files/icr_load/marc/sqlldr_load/CSSO_CCRBSCREDENTIALS_COMSUMER23062010160322.bad'
DISCARDFILE '/u04/app/vpht_app/flat_files/icr_load/marc/sqlldr_load/CSSO_CCRBSCREDENTIALS_COMSUMER23062010160322.dsc'
INSERT

INTO TABLE "DCVPAPP"."RBS_CC_CUSTOMERINFO"
INSERT
FIELDS TERMINATED BY ','
TRAILING NULLCOLS
(CC_USER_NAME POSITION(24:73),
ACCOUNTID POSITION(1:12),
CUSTOMERID POSITION(14:22))

INTO TABLE "DCVPAPP"."RBS_CC_SECURITYDETAILS"
WHEN (481:481) = 'N' AND (477:479) ='0'
FIELDS TERMINATED BY ','
TRAILING NULLCOLS
(
CC_USER_NAME POSITION(24:73),
RBSPIN POSITION(75:274),
RBSPASSWORD POSITION(276:475),
fill1 filler,
fill2 filler,
fill3 filler,
fill4 filler,
FAILCODECOUNT POSITION(477:479),
FAILPASSWORDCOUNT POSITION(477:479)
)

INTO TABLE "DCVPAPP"."RBS_CC_SECURITYDETAILS"
WHEN (481:481) = 'N' AND (477:479) ='1'
FIELDS TERMINATED BY ','
TRAILING NULLCOLS
(
CC_USER_NAME POSITION(24:73),
RBSPIN POSITION(75:274),
RBSPASSWORD POSITION(276:475),
fill1 filler,
fill2 filler,
fill3 filler,
fill4 filler,
FAILCODECOUNT POSITION(477:479),
FAILPASSWORDCOUNT POSITION(477:479)
)

Meine Tabellenstruktur ist:

Create table RBS_CC_CUSTOMERINFO
(
CC_USER_NAME VARCHAR2(50),
ACCOUNTID VARCHAR2(12) NOT NULL,
CUSTOMERID VARCHAR2(9) NOT NULL,
CUST_MIGRATION_STATUS VARCHAR2(1) DEFAULT 'N' NOT NULL,
CONSTRAINT pk_01 PRIMARY KEY (CC_USER_NAME)
);

Create table RBS_CC_SECURITYDETAILS
(
CC_USER_NAME VARCHAR2(50),
RBSPIN VARCHAR2(200) NOT NULL,
RBSPASSWORD VARCHAR2(200) NOT NULL,
FAILCODECOUNT NUMBER (9) NOT NULL,
FAILPASSWORDCOUNT NUMBER (9) NOT NULL,
CONSTRAINT pk_secur
FOREIGN KEY (CC_USER_NAME)
REFERENCES RBS_CC_CUSTOMERINFO(CC_USER_NAME)
)

und meine sample-Daten ist unten( Diese haben schon Recht, gepolstert, da diese Feste Felder) der Letzte Datensatz verworfen werden sollte, und legte Sie in der Seite, die Datei verwerfen, da es nicht treffen keine der when-Klausel Bedingungen, aber keine discard-Datei erstellt. Ich habe es mit einer wenn-Klausel und die discard-Datei erstellt wurde,scheint die Verwendung von mehr als einer Tabelle der discard-Datei nicht erstellt.

ACC000000001,CUSTID213,MARC_VAF ,1234 -, pet -, 0 ,N,N,VOLL 
ACC000000002,CUSTID214,TOBY_123 ,1352 ,bailey ,1 ,Y,N,VOLL 
ACC000000003,CUSTID215,KEVIN_VAF81 ,YY33OF ,Wasser ,2 ,Y,N,VOLL 
ACC000000015,CUSTID227,SAM_EGD ,CARRY42 ,einige Passwort ,-3 ,Y,N,VOLL 

Dank

Sind mehrere INSERT Linien normal?

InformationsquelleAutor user123 | 2011-02-18

Schreibe einen Kommentar