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

Comment revenir en arrière lorsqu'une erreur se produit lors de l'exécution de la commande sql loader ?

Vous ne pouvez pas revenir en arrière depuis SQL*Loader, il s'engage automatiquement. Ceci est mentionné dans les errors description du paramètre :

Lors d'un chargement de table unique, SQL*Loader arrête le chargement lorsque les erreurs dépassent cette limite d'erreurs. Cependant, toutes les données insérées jusqu'à ce point sont validées.

Et il y a une section sur les chargements interrompus.

Vous pouvez essayer de charger les données dans une table intermédiaire et, si cela réussit, déplacer les données dans la table réelle (avec delete/insert into .. select .. , ou avec un swap de partition si vous avez une grande quantité de données). Ou vous pouvez utiliser une table externe et faire la même chose, mais vous auriez besoin d'un moyen de déterminer si la table contient des enregistrements ignorés ou rejetés.