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

Come eseguire il rollback quando si verifica un errore durante l'esecuzione del comando sql loader?

Non è possibile eseguire il rollback da SQL*Loader, si impegna automaticamente. Questo è menzionato negli errors descrizione del parametro:

In un caricamento di una singola tabella, SQL*Loader termina il caricamento quando gli errori superano questo limite di errore. Tutti i dati inseriti fino a quel punto, tuttavia, vengono confermati.

E c'è una sezione sui carichi interrotti.

Puoi provare a caricare i dati in una tabella di staging e, se ha esito positivo, sposta i dati nella tabella reale (con delete/insert into .. select .. o con uno scambio di partizione se si dispone di una grande quantità di dati). Oppure potresti usare una tabella esterna e fare la stessa cosa, ma avresti bisogno di un modo per determinare se la tabella contiene record scartati o rifiutati.