Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Beim Versuch, einen Clob in eine Oracle-Tabelle zu laden, werden zu viele Datensätze geladen

Das typische Setup für Oracle Loader mit LOBs wäre:

  • Die Steuerdatei mit den Ladeanweisungen
  • Es gibt eine Hauptdatei mit den Metadaten (Autor, Datum, Dateiname). Jede Zeile in der Datei wird zu einer Zeile in der Zieltabelle.
  • Für jeden Eintrag in der Hauptdatei gibt es eine separate Datei, die in die CLOB- oder BLOB-Spalte der Zieltabelle geladen wird.

In Ihrem Fall scheinen die XML-Dateien sowohl als Hauptdatendatei als auch als separate LOB-Datei verwendet zu werden (obwohl ich nicht ganz verstehe, warum; geben Sie das XML auch in der Befehlszeile an?).

Sie müssen diese drei Dinge also richtig spezifizieren. Um drei Dateien zu vermeiden, fügen Sie die Hauptdatendatei mit der BEGINDATA-Direktive in die Steuerdatei ein (dafür steht der Stern nach 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