2011-06-17 2 views
2

J'ai une table externe avec la définition ci-dessous.Tableau externe - Supprimer le fichier non généré comme prévu

create table app_doctor (
     doc_no    number(9), 
     age    number(3), 
     eor    char(3 char) 
) 
organization external 
( type oracle_loader 
     default directory "DOC" 
     access parameters 
     ( 
     records delimited by newline 
     **load when (eor = "EOR")** 
     string sizes are in characters 
     logfile 'doc.log' 
     badfile 'doc.bad' 
     discardfile 'doc.dsc' 
     fields 
     ( 
      doc_no position  (1:9) integer external(9), 
      age position  (10:12) integer external(3), 
      eor position  (13:15) char(3) 
     ) 
    ) 
     location('HOSP_DOC.txt') 
) 
reject limit unlimited 
parallel 5; 

I nourrir 100 dossiers, dont 50 sont valides, 20 ne sont pas valides, et 30 ne satisfait pas à la condition WHEN, mais je ne vois que 4 ou 5 dossiers dans mon dossier de défausse.

+0

Quelque chose de significatif dans votre fichier doc.log? – DCookie

+0

Qu'est-ce qui est différent de ces enregistrements 4/5? –

Répondre

0

Utilisation de la définition de la table externe suivante:

create table app_doctor (
     doc_no    number(9), 
     age    number(3), 
     eor    char(3 char) 
) 
organization external 
( type oracle_loader 
     default directory "DOC" 
     access parameters 
     ( 
     records delimited by newline 
     **load when (eor = "EOR")** 
     string sizes are in characters 
     logfile 'doc.log' 
     badfile 'doc.bad' 
     discardfile 'doc.dsc' 
     fields 
     ( 
      doc_no position  (1:9) integer external(9), 
      age position  (10:12) integer external(3), 
      eor position  (13:15) char(3) 
     ) 
    ) 
     location('HOSP_DOC.txt') 
) 
reject limit unlimited 
parallel 5; 

Et le fichier de données de test suivant:

 
123456789021EOR 
123456789021EOR 
123456789021EOR 
123456789021EOR 
123456789021FER 
123456789021FER 
123456789021FER 
asdfasfa9021ABC 
asdfasfa9021ABC 
asdfasfa9021ABCasdfasdas 
123456789021ABC 
123456789021FER 
123456789021EOR 
123456789021EOR 
123456789021EOR 
123456789021ABC 
123456789021ABC 
123456789021ABC 

Je reçois 7 enregistrements valides retournés lors de l'exécution

select * from app_doctor; 

Mon fichier défausse contient tous les 11 enregistrements incorrects et le fichier journal doc.log contient le correct inf ormation ce qui est arrivé lors de l'exécution:

 
    LOG file opened at 03/08/13 11:33:56 

Field Definitions for table APP_DOCTOR 
    Record format DELIMITED BY NEWLINE 
    Data in file has same endianness as the platform 
    Rows with all null fields are accepted 
    Load when (EOR = EOR) 

    Fields in Data Source: 

    DOC_NO       Integer external (9) 
     Record position (1, 9) 
     Trim whitespace same as SQL Loader 
    AGE        Integer external (3) 
     Record position (10, 12) 
     Trim whitespace same as SQL Loader 
    EOR        CHAR (3) 
     Record position (13, 15) 
     Trim whitespace same as SQL Loader 


LOG file opened at 03/08/13 11:33:56 

Field Definitions for table APP_DOCTOR 
    Record format DELIMITED BY NEWLINE 
    Data in file has same endianness as the platform 
    Rows with all null fields are accepted 
    Load when (EOR = EOR) 

    Fields in Data Source: 

    DOC_NO       Integer external (9) 
     Record position (1, 9) 
     Trim whitespace same as SQL Loader 
    AGE        Integer external (3) 
     Record position (10, 12) 
     Trim whitespace same as SQL Loader 
    EOR        CHAR (3) 
     Record position (13, 15) 
     Trim whitespace same as SQL Loader 
KUP-04102: record 5 discarded from file /apps/oracle/doc/HOSP_DOC.txt 
KUP-04102: record 6 discarded from file /apps/oracle/doc/HOSP_DOC.txt 
KUP-04102: record 7 discarded from file /apps/oracle/doc/HOSP_DOC.txt 
KUP-04102: record 8 discarded from file /apps/oracle/doc/HOSP_DOC.txt 
KUP-04102: record 9 discarded from file /apps/oracle/doc/HOSP_DOC.txt 
KUP-04102: record 10 discarded from file /apps/oracle/doc/HOSP_DOC.txt 
KUP-04102: record 11 discarded from file /apps/oracle/doc/HOSP_DOC.txt 
KUP-04102: record 12 discarded from file /apps/oracle/doc/HOSP_DOC.txt 
KUP-04102: record 16 discarded from file /apps/oracle/doc/HOSP_DOC.txt 
KUP-04102: record 17 discarded from file /apps/oracle/doc/HOSP_DOC.txt 
KUP-04102: record 18 discarded from file /apps/oracle/doc/HOSP_DOC.txt 
0

selon les oracle documentation

Les noms de clause de DISCARDFILE le fichier dans lequel les enregistrements sont écrits que échouent la condition dans la charge lorsque la clause.

Questions connexes