Oracle
 sql >> Database >  >> RDS >> Oracle

Quando si tenta di caricare un clob in una tabella Oracle, vengono caricati troppi record

La configurazione tipica per Oracle Loader con LOB sarebbe:

  • Il file di controllo con le istruzioni di caricamento
  • C'è un file di dati principale con i metadati (autore, data, nome file). Ogni riga nel file diventa una riga nella tabella di destinazione.
  • C'è un file separato per ogni voce nel file principale, che viene caricato nella colonna CLOB o BLOB della tabella di destinazione.

Nel tuo caso, i file XML sembrano essere usati sia come file di dati principale che come file LOB separato (anche se non capisco completamente il motivo; stai specificando anche l'XML sulla riga di comando?).

Quindi è necessario specificare correttamente queste tre cose. Per evitare tre file, inserisci il file di dati principale nel file di controllo usando la direttiva BEGINDATA (questo è l'astrisk dopo INFILE):

LOAD DATA
INFILE * 
REPLACE

INTO TABLE LEAD_REPORTING_CLOB
FIELDS TERMINATED BY ',' TRAILING NULLCOLS
(
    FILENAME,
    SHARED_XML  LOBFILE(FILENAME) TERMINATED BY EOF
)

BEGINDATA
/export/RFD/Lead_Reports/LEADRPT.xml