Oracle sqlloader

Oracle sqlloader

SQLLoader è uno strumento nel database Oracle che consente di caricare i dati da file esterni in un database. Questo strumento consente di caricare i dati da più formati tra cui file di testo delimitato (virgola, scheda e tubo delimitato), larghezza fissa e file binari. SQLLoader viene spesso utilizzato per caricare le grandi quantità di dati in un database, in quanto è molto più veloce delle tradizionali istruzioni di inserto.

Il caricatore SQL*presenta diversi vantaggi rispetto ad altri metodi per caricare i dati in un database. È veloce, efficiente e può gestire grandi quantità di dati. Può anche caricare i dati da più file di dati e caricare selettivamente le righe specifiche di dati in base ai criteri specificati.

Questo tutorial mira a capire come possiamo utilizzare lo strumento SQLLoader nei database Oracle per caricare i dati da file esterni.

Per utilizzare SQLLoader, è necessario prima creare un file di controllo che specifichi i dettagli dei dati che si desidera caricare come la posizione dei file di dati, il formato dati e le colonne e le tabelle in cui i dati devono essere caricati. Una volta creato il file di controllo, è possibile utilizzare il comando SQLLDR per eseguire SQLLoader e caricare i dati nel database.

Comando Oracle Sqlldr

Il comando SQLLDR consente di invocare lo strumento SQLLoader e caricare un dati specificato. La sintassi per il comando è come mostrata:

sqlldr [opzioni] controllo = controllo_file

Dove control_file è il percorso e il nome file del file di controllo che specifica i dettagli dei dati che si desidera caricare.

Alcune opzioni accettate da utilizzare con il comando SQLLDR per personalizzare il modo in cui vengono caricati i dati includono quanto segue:

  1. ID utente - Specifica il nome utente e la password durante la connessione al database. Questa opzione viene generalmente utilizzata nel modulo UserID = Nome utente/password.
  2. Tronco d'albero - Specifica il percorso e il nome file del file di registro in cui SQL*Loader scrive un'informazione sul caricamento dei dati.
  3. Cattivo - Specifica il percorso e il nome file del file cattivo in cui SQL*Loader scrive i record che non possono essere caricati.
  4. Saltare - Specifica il numero di record da saltare prima di caricare i dati. Questo può essere utile se si desidera saltare una riga di intestazione in un file di dati.

NOTA: Hai bisogno sia del file di controllo che del file di dati. Come suggerisce il nome, il file di controllo, noto anche come file dei parametri, viene utilizzato per definire i parametri di caricamento utilizzati dallo strumento SQLLoader mentre il file di dati contiene i dati da caricare nel database.

Come utilizzare lo strumento SQLLoader

Dimostriamo come possiamo utilizzare lo strumento SQLLoader per caricare un file CSV di esempio in un database.

Il file contiene le seguenti informazioni:

1, Jessey, 510875112938546, Stati Uniti
2, Cullan, 30158095148532, Cina
3, Larry, 5602228155212200, Myanmar
4, Brewer, 676215234357374423, Stati Uniti
5, Iago, 5010120503889936, Grecia

Iniziamo definendo il file di controllo con il contenuto mostrato nel seguente:

CARICAMENTO DATI
Negli utenti della tabella
INSERIRE
Campi terminati da '', '
(
id,
nome di battesimo,
carta di credito,
Paese
)

Il codice fornito specifica il file di controllo per lo strumento Loader SQL*per caricare i dati da un file CSV in una tabella del database Oracle.

Nel file di controllo, troverai informazioni come:

  1. L'istruzione dati di caricamento che indica che lo strumento Loader SQL*carica i dati da un file di dati nel database.
  2. La clausola infila che definisce il percorso del file di dati. Nel nostro caso, questo è un file CSV chiamato user_info.dat
  3. La clausola in tabella che imposta il nome della tabella di destinazione nel database. Nel nostro caso, è la tabella degli utenti.
  4. Successivamente, i campi terminati dalla clausola che specificano che i valori dei dati nel file CSV sono separati da una virgola (,).
  5. Quindi impostiamo l'elenco delle colonne nella tabella degli utenti e nei tipi di dati corrispondenti.
  6. È inoltre possibile utilizzare la clausola set per definire che la colonna ID è impostata sul valore successivo nella sequenza user_sequence. Ciò genera automaticamente un valore chiave primario univoco per ciascun record caricato nella tabella utente.

NOTA: Potrebbe essere necessario definire l'utente_sequence come mostrato nell'esempio seguente:

Crea sequenza user_sequence
Inizia con 1
Incremento di 1;

Questa affermazione crea una sequenza chiamata User_sequence che inizia a uno e incrementi di 1 per ogni nuovo valore che viene aggiunto alla tabella.

Una volta pronti i file di dati e di controllo, dobbiamo definire il file dei parametri che regola come lo strumento SQLLoader gestisce il processo di caricamento.

userid = hr/password
Control = Control_File.ctl
log = user_load_data.tronco d'albero
BAD = user_load_data.Cattivo
data = user_info.dat
Direct = True

I parametri sono spiegati come segue:

  1. ID utente - Il parametro UserID specifica il nome utente e la password da utilizzare durante la connessione al database Oracle. In questo caso, dobbiamo connetterci come utente delle risorse umane con la password specificata.
  2. controllo - Questo parametro definisce il nome e la posizione del file di controllo per lo strumento caricatore SQL*. Nel nostro esempio, utilizziamo il controllo.CTL dalla directory di lavoro corrente.
  3. tronco d'albero - Il parametro di registro imposta il nome del file di registro che lo strumento caricatore SQL*genera per tenere traccia dei registri operativi di caricamento.
  4. Cattivo - In questo caso, il parametro negativo rappresenta il nome del cattivo file che lo strumento caricatore SQL*genera per archiviare eventuali record che non possono essere caricati a causa di errori.
  5. dati - Questo parametro imposta il nome file sul file di dati da caricare nel database.
  6. diretto - Infine, il parametro diretto specifica se lo strumento caricatore SQL*deve utilizzare la modalità di caricamento del percorso diretto. La modalità diretta aggira alcuni controlli di database integrati come integrità e controlli di vincolo. Ciò può aumentare drasticamente la velocità di caricamento, specialmente su un set di dati di grandi dimensioni.

Il prossimo passo è creare la tabella degli utenti in cui cariciamo i dati di destinazione.

Crea utenti di tabelle (
Numero ID,
first_name varchar2 (50),
Credit_Card Varchar2 (100),
Country Varchar2 (50)
);

Una volta che tutti i file sono pronti, possiamo aprire il terminale e invocare il comando sqlldr come mostrato nell'esempio seguente:

$ sqlldr userid = hr/password parfile = paramfile.par

NOTA: Puoi nominare il file di dati, controllo e param con qualsiasi nome file accettabile. Assicurati di fare riferimento al nome file corretto nei comandi.

Questo dovrebbe caricare i dati nella tabella degli utenti e stampare il seguente output:

$ sqlldr parfile = paramfile.par
Caricatore SQL*: versione 19.0.0.0.0 - ****
Percorso usato: diretto
Carica completato - Conteggio dei record logici 5.
Utenti della tabella:
5 righe caricate con successo.
Controlla il file di registro:
user_load_data.tronco d'albero

Per verificare se i dati sono stati caricati nel database, possiamo selezionare tutti i valori dalla tabella come segue:

Seleziona * dagli utenti;

Risultato:

Conclusione

In questo tutorial, hai riscontrato lo strumento SQLLoader, un'utilità di comando nel database Oracle che consente di caricare i dati dai file esterni in un database Oracle. Hai scoperto i vari metodi e tecniche, incluso la definizione di un file di controllo e un file di parametri e il caricamento dei dati nel database. Sebbene lo strumento SQLLoader possa inizialmente sembrare intimidatorio, speriamo che questo tutorial ti abbia aiutato a diventare più sicuro nell'uso dello strumento.

Pertanto, l'utilizzo dello strumento di caricatore SQL*può essere utile per un caricamento rapido ed efficiente di grandi quantità di dati in un database Oracle.