Oracle Sqlloader

Oracle Sqlloader

Sqlloader er et verktøy i Oracle -databasen som lar deg laste inn dataene fra eksterne filer i en database. Dette verktøyet lar deg laste inn dataene fra flere formater inkludert avgrensede (komma, fane og røravgrenset) tekstfiler, fast bredde og binære filer. Sqlloader brukes ofte til å laste inn de store datamengdene i en database, da det er mye raskere enn de tradisjonelle innsatsuttalelsene.

SQL*Loader har flere fordeler i forhold til andre metoder for å laste inn dataene i en database. Den er rask, effektiv og kan håndtere store datamengder. Den kan også laste inn dataene fra flere datafiler og selektivt laste de spesifikke dataene med data basert på spesifiserte kriterier.

Denne opplæringen tar sikte på å forstå hvordan vi kan bruke SQLloader -verktøyet i Oracle -databaser for å laste inn dataene fra eksterne filer.

For å bruke SQLloader, må du først opprette en kontrollfil som spesifiserer detaljene i dataene du vil laste inn, for eksempel datafilenes plassering, dataformatet og kolonnene og tabellene som dataene skal lastes inn i. Når kontrollfilen er opprettet, kan du bruke SQLLDR -kommandoen til å kjøre SQLLOADER og laste inn dataene i databasen.

Oracle Sqlldr -kommando

SQLLDR -kommandoen lar deg påkalle SQLloader -verktøyet og laste inn en spesifisert data. Syntaksen for kommandoen er som vist:

sqlldr [alternativer] control = control_file

Der control_file er banen og filnavnet til kontrollfilen som spesifiserer detaljene om dataene du vil laste inn.

Noen aksepterte alternativer å bruke med SQLLDR -kommandoen for å tilpasse hvordan dataene lastes inn inkluderer følgende:

  1. Bruker-ID - Den spesifiserer brukernavnet og passordet når du kobler til databasen. Dette alternativet brukes vanligvis i UserID = brukernavn/passordskjema.
  2. Logg - Den spesifiserer banen og filnavnet til loggfilen der SQL*Loader skriver en informasjon om databelastningen.
  3. Dårlig - Den spesifiserer banen og filnavnet til den dårlige filen der SQL*Loader skriver postene som ikke kunne lastes.
  4. Hopp over - Den spesifiserer antall poster som skal hopper over før du laster inn dataene. Dette kan være nyttig hvis du vil hoppe over en topprekke i en datafil.

MERK: Du trenger både kontrollfilen og datafilen. Som navnet antyder, brukes kontrollfilen, også kjent som parameterfilen, til å definere belastningsparametrene som brukes av Sqlloader -verktøyet mens datafilen inneholder dataene som skal lastes inn i databasen.

Hvordan bruke SQLloader -verktøyet

La oss demonstrere hvordan vi kan bruke SQLloader -verktøyet til å laste inn en eksempler på CSV -fil i en database.

Filen inneholder følgende informasjon:

1, Jessey, 5108751129385546, USA
2, Cullan, 30158095148532, Kina
3, Larry, 5602228155212200, Myanmar
4, Brewer, 676215234357374423, USA
5, Iago, 5010120503889936, Hellas

La oss starte med å definere kontrollfilen med innholdet som vist i følgende:

Last inn data
Inn i tabellbrukere
SETT INN
Felt avsluttet av ','
(
id,
fornavn,
kredittkort,
land
)

Den oppgitte koden spesifiserer kontrollfilen for SQL*Loader Tool for å laste inn dataene fra en CSV -fil til en Oracle -databasetabell.

I kontrollfilen finner du en informasjon som:

  1. Lastdataoppgaven som indikerer at SQL*Loader Tool laster inn dataene fra en datafil til databasen.
  2. Infilbestemmelsen som definerer banen til datafilen. I vårt tilfelle er dette en CSV -fil som heter user_info.Dat
  3. Into Table Clause som angir navnet på måltabellen i databasen. I vårt tilfelle er det brukertabellen.
  4. Deretter avsluttes feltene med klausul som spesifiserer at dataverdiene i CSV -filen er atskilt med komma (,).
  5. Vi setter deretter listen over kolonner i brukertabellen og de tilsvarende datatypene.
  6. Du kan også bruke SET -leddet for å definere at ID -kolonnen er satt til neste verdi i brukeren. Dette genererer automatisk en unik primær nøkkelverdi for hver post som er lastet inn i brukertabellen.

MERK: Det kan hende du må definere brukeren som vist i følgende eksempel:

Lag sekvensbruker_sequence
Start med 1
Økning med 1;

Denne uttalelsen oppretter en sekvens kalt user_sequence som starter på en og trinn med 1 for hver nye verdi som legges til i tabellen.

Når vi har gjort data- og kontrollfilene klare, må vi definere parameterfilen som styrer hvordan SQLloader -verktøyet håndterer lastprosessen.

userId = hr/passord
kontroll = control_file.CTL
log = user_load_data.Logg
dårlig = user_load_data.dårlig
data = user_info.Dat
direkte = sant

Parametrene blir forklart som følger:

  1. bruker-ID - Userid -parameteren spesifiserer brukernavnet og passordet som skal brukes når du kobler til Oracle -databasen. I dette tilfellet må vi koble til som HR -brukeren med det spesifiserte passordet.
  2. kontroll - Denne parameteren definerer navnet og plasseringen av kontrollfilen for SQL*Loader Tool. I vårt eksempel bruker vi Control_File.CTL fra den nåværende arbeidskatalogen.
  3. Logg - Loggparameteren angir loggfilnavnet som SQL*Loader Tool genererer for å holde oversikt over lastoperasjonsloggene.
  4. dårlig - I dette tilfellet representerer den dårlige parameteren navnet på den dårlige filen som SQL*Loader Tool genererer for å lagre poster som ikke kunne lastes på grunn av feil.
  5. data - Denne parameteren setter filnavnet til datafilen som skal lastes inn i databasen.
  6. direkte - Til slutt spesifiserer den direkte parameteren om SQL*Loader -verktøyet skal bruke direkte bane -belastningsmodus. Direkte modus omgår noen innebygde databasekontroller som integritet og begrensningskontroller. Dette kan øke lastehastigheten dramatisk, spesielt på et stort datasett.

Neste trinn er å opprette brukernes tabell der vi laster inn måldataene.

Lag tabellbrukere (
ID-nummer,
First_name varchar2 (50),
Credit_card varchar2 (100),
land varchar2 (50)
);

Når alle filene er klare, kan vi åpne terminalen og påkalle SQLLDR -kommandoen som vist i følgende eksempel:

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

MERK: Du kan navngi dataene, kontrollen og paramfilen med ethvert akseptabelt filnavn. Sørg for å referere til riktig filnavn i kommandoene.

Dette skal laste dataene til brukertabellen og skrive ut følgende utdata:

$ sqlldr parfile = paramfile.par
SQL*Loader: Utgivelse 19.0.0.0.0 - ****
BRUN BRUKT: Direkte
Last fullført - Logisk rekordtall 5.
Tabellbrukere:
5 rader med hell lastet.
Sjekk loggfilen:
user_load_data.Logg

For å bekrefte om dataene er lastet inn i databasen, kan vi velge alle verdier fra tabellen som følger:

Velg * fra brukere;

Resultat:

Konklusjon

I denne opplæringen har du møtt SQLloader-verktøyet, et kommandolinjeverktøy i Oracle-databasen som lar deg laste inn dataene fra de eksterne filene i en Oracle-database. Du oppdaget de forskjellige metodene og teknikkene, inkludert å definere en kontrollfil og en parameterfil, og laste inn dataene i databasen. Selv om SQLloader -verktøyet i utgangspunktet kan virke skremmende, håper vi at denne opplæringen hjalp deg med å bli mer trygg på å bruke verktøyet.

Derfor kan bruk av SQL*Loader Tool være fordelaktig for rask og effektiv lasting av store datamengder i en Oracle -database.