Utilizând bootloaderul oracle

Folosind Oracle Loader

  • sinopsis
  • Crearea unui fișier de control
  • Crearea unui fișier de date
  • Descărcarea datelor
  • Încărcarea datelor fără crearea unui fișier de date
  • Încărcarea datelor formatelor DATE
  • Introducerea valorilor NULL

Pentru a utiliza încărcătorul Oracle, trebuie să creați un fișier de control, care să definească modul în care datele trebuie încărcate în baza de date; Un fișier de date care determină ce date ar trebui să fie încărcate în baza de date. Această secțiune descrie cum se creează astfel de fișiere.







Crearea unui fișier de control

Un fișier de control tipic are următoarea structură:

  • <имяФайлаДанных> - acesta este numele fișierului de date. Dacă nu este specificată nicio extensie, Oracle acceptă extensia implicită (.dat). Dacă fișierul are o extensie diferită, trebuie specificat explicit.
  • <имяТаблицы> - acesta este numele tabelului în care vor fi adăugate datele. Înainte de operația de descărcare, trebuie creată tabela.
  • Cuvântul cheie indică faptul că datele vor fi adăugate în tabelul numit <имяТаблицы>. Dacă cuvântul cheie APPEND este omis, tabela trebuie să fie goală înainte de operația de încărcare, altfel o eroare va fi generată
  • <разделитель> Acesta determină ce valori ale coloanelor sunt separate în fișierul de date una de cealaltă. Orice caracter unic poate fi folosit ca separator. De obicei, un simbol este folosit ca separator, care nu poate fi prezent ca o valoare a coloanei.
  • Lista de nume de coloane (atribute) ale tabelului <имяТаблицы> - Acestea sunt numele coloanelor la care trebuie încărcate datele din fișier. Lista este în paranteze, numele sunt separate prin virgulă. Lista nu include neapărat toate coloanele tabelului, ordinea includerii acestora nu este neapărat aceeași ca în tabel. Sqlldr va căuta nume din lista de nume din structura tabelului. Toate coloanele ale căror nume nu sunt incluse în listă vor fi setate la NULL,

    Un exemplu de fișier de control test.ctl:

    Crearea unui fișier de date

    Fiecare linie a fișierului de date reprezintă datele care vor fi rândul (tupla) tabelului după descărcare. Fiecare rând conține o listă de valori ale coloanelor (atribute), valorile sunt localizate în aceeași ordine cu numele de coloane din lista de nume de coloane ale fișierului de control, valorile sunt separate <разделителем>, definite în fișierul de control.

    De exemplu, fișierul de date test.dat poate fi:

    Amintiți-vă că lista de coloane (atribute) definite în test.ctl - (i, s), unde coloana i este de tip int, coloană s-char (10). Prin urmare, ca urmare a încărcării datelor din fișierul test.dat, următoarele tabele (tupluri) vor fi adăugate la tabela de testare:

    Avertisment: Rețineți că a treia linie a test.dat are un spațiu după "|". Acest spațiu nu este ignorat de încărcător. Valoarea care va fi încărcată pentru atributul s este 'baz', un șir de caractere de patru caractere cu un spațiu inițial. Este o greșeală să credem că în loc să fie încărcat "baz" (șir de caractere cu trei caractere fără spațiul inițial). Acest lucru poate duce la probleme pe care nu le veți acorda atenție până când nu încercați să interogați datele descărcate, deoarece "baz" și "baz" sunt linii diferite.







    Încărcătorul Oracle este numit sqlldr. Aceasta este o comandă UNIX, deci este apelată de la UNIX, nu de la sqlplus. Comanda are următorul format:

    Toți parametrii acestei comenzi sunt opționali, în absența acestora sistemul va cere numele de utilizator, parola, numele fișierului de control.

    - acesta este numele fișierului de control. Dacă numele este specificat fără o extensie, sqlldr va adăuga extensia implicită ".ctl". Numele fișierului de date din această comandă nu este specificat, deoarece este în fișierul de control. - acesta este numele fișierului jurnal. Dacă numele este specificat fără o extensie, sqlldr va adăuga extensia implicită ".log". Acest fișier conține informații despre funcționarea operației de încărcare, cum ar fi numărul de rânduri încărcate (tupluri), descrierile erorilor care s-au produs etc. - acesta este numele fișierului de eroare. Dacă numele este specificat fără o extensie, sqlldr va adăuga extensia implicită ".bad". În acest fișier vor fi adăugate linii "rele" (tuple), adică linii pentru care a fost generată o eroare în timp ce încercați să le încărcați.

    Dacă fișierul de înregistrare sau fișierul de eroare nu este definit, sqlldr utilizează numele fișierului de control cu ​​extensii .log și .bad, respectiv.

    De exemplu, dacă utilizatorul sally dorește să ruleze test.ctl fișierul de control și să definească ieșirea jurnalului în fișierul test.log, comanda va arăta astfel:

    Descărcarea de date fără a utiliza un fișier de date delimitat

    Este posibil să utilizați numai un fișier de control pentru a încărca date, mai degrabă decât să utilizați un fișier de date separat.

    În acest caz, în loc de numele fișierului, simbolul "*" este specificat și cuvântul cheie BEGINDATA este folosit pentru a porni secțiunea de date din fișierul de control.

    Încărcarea datelor formatelor DATE

    Încărcarea datelor de tip DATE (data) are unele caracteristici.

    Să presupunem că ați creat un tabel cu o coloană care are tipul de date DATE:

    În fișierul de control, când specificați coloanele (atributele) tabelului foo, în spatele numelui coloanei d, trebuie să specificați tipul de date DATE și masca de date. Masca definește formatul în care vor fi folosite datele. O mască este un șir de caractere încadrate în ghilimele și care conține:

  • Secvențele de caractere d, m sau y, care denotă câmpurile din datele dvs., care vor fi interpretate ca zile, luni, ani, respectiv. Ca aproape toată lumea din SQL, capitalul și literele mici sunt la fel de valide, de exemplu, un câmp MM pe lună.
  • Lungimile acestor câmpuri definesc lungimile maxime pentru valorile corespunzătoare din datele dvs. Cu toate acestea, datele pot fi mai scurte.
  • Alte caractere, cum ar fi "-" (liniuțe), care sunt tratate literal și ar trebui să apară în datele dvs. dacă sunt plasate într-o mască.

    De exemplu, fișierul de control ar putea arăta astfel:

    Rețineți că în exemplul de mai sus, a doua linie (tuplă) ilustrează faptul că datele pot fi mai scurte decât masca corespunzătoare. Simbolul "-" va afișa încărcătorului că ziua și luna câmpului se termină mai devreme.

    Introducerea valorilor NULL

    Puteți defini valorile NULL pur și simplu lăsând câmpuri goale în fișierul de date. De exemplu, pentru a introduce valorile întregi într-un tabel cu o structură (a, b, c), puteți plasa, de exemplu, astfel de linii în fișierul de date:

    Aceasta va introduce în tabel următoarele linii (nopți):

    Trebuie reținut faptul că valorile cheilor primare sau alte restricții nu pot fi goale, astfel încât aceste linii nu vor fi adăugate.

    Notă: În cazul în care ultimul câmp al fișierului de date ar trebui să fie o valoare goală (NULL), atunci fișierul de control trebuie să fie inclus după linia trailing NULLCOLS DOMENII DE NULLCOLS TERMINATED END, în caz contrar sqlldr nu adăugați această linie (tuplu). Sqlldr va respinge, de asemenea, rânduri (tupluri) în care toate valorile coloanelor sunt NULL.







    Articole similare

    Trimiteți-le prietenilor: