Oracle
 sql >> Base de données >  >> RDS >> Oracle

Lorsque vous essayez de charger un clob dans une table Oracle, chargez trop d'enregistrements

La configuration typique d'Oracle Loader avec LOB serait :

  • Le fichier de contrôle avec les instructions de chargement
  • Il existe un fichier de données principal avec les métadonnées (auteur, date, nom de fichier). Chaque ligne du fichier devient une ligne dans la table cible.
  • Il existe un fichier séparé pour chaque entrée dans le fichier principal, qui est chargé dans la colonne CLOB ou BLOB de la table cible.

Dans votre cas, les fichiers XML semblent être utilisés à la fois comme fichier de données principal et comme fichier LOB séparé (bien que je ne comprenne pas entièrement pourquoi ; spécifiez-vous également le XML sur la ligne de commande ?).

Vous devez donc bien spécifier ces trois choses. Afin d'éviter trois fichiers, vous placez le fichier de données principal dans le fichier de contrôle à l'aide de la directive BEGINDATA (c'est à cela que sert l'astérisque après 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