Dnes je: 20. května 2012

Ostatní

Autor knihy

Oracle Database 11g - Hotová řešení

Kdo je online

Právě připojeni - hostů: 11 

Přihlásit se




Přenost dat z CSV souboru do Oracle (SQL*Loader)

U datových skladů, ale třeba i při migraci a konsolidaci dat zjistíte, že máte plno dat uložených v souborech Excel. Teď byste je však potřebovali přenést do vaší databáze Oracle, abyste měli vše pohromadě. Jedna z možností je využít utilitu SQL*Loader.
Ale postupně.

 

 

Vytvořte si libovolný seznam v Excelu a vyexportujte ho do CSV souboru. Jako oddělovače použijte například středník, což je předdefinovaná volba v Excelu. Tak nějak může vypadat CSV soubor zam.csv.
1;Tomas
2;Jarka
3;Matej

 


Datový soubor sqlloaderu máte vytvořený, ale je potřeba vytvořit ještě kontrolní soubor. V kontrolním souboru se popisuje formát dat, vstupní soubor a jednotlivé sloupce souboru. Kontrolní soubor je pojmenovaný jako zam.ctl.
[oracle@centos53 ~]$ cat zam.ctl
LOAD DATA
INFILE '/home/oracle/zam.csv'
INTO TABLE zam
FIELDS TERMINATED BY ';'
(id CHAR(2), jmeno CHAR(10))


Poznámka: Ať se jedná o sloupec číselný (number) nebo alfanumericky (varchar2), tak v kontrolním souboru jsou označeny jako char.
Zdrojová data máte připravena, teď je potřeba vytvořit si v databázi tabulku, do které si budete data ukládat. Vytvořte tabulku zam v libovolném schématu.


SQL> create table tsolar.zam (id number, jmeno varchar2(10)) tablespace users;

Table created.
 

Sloupce by měli odpovídat zdrojovému souboru. K vlastnímu přenosu dat použijte utilitu sqlloader. Jako parametry zadejte uživatele, který má platný účet v databázi a druhý parametr je kontrolní soubor.
 

[oracle@centos53 ~]$ sqlldr tsolar/Ora1cle19 control=/home/oracle/zam.ctl

SQL*Loader: Release 11.1.0.6.0 - Production on Mon Nov 23 06:07:00 2009
...
Commit point reached - logical record count 3
 

Data se úspěšně nahrála do databáze. Při vlastním nahrávání se vytvořil logovací soubor zam.log v aktuálním adresáři. Zkontrolujte, zda během nahrávání dat nedošlo k chybě. Kdyby ano vytvořil by se ještě dodatečný soubor zam.bad, ve kterém by byli vypsané veškeré chyby.
Table ZAM:
3 Rows successfully loaded.
0 Rows not loaded due to data errors.
Přihlaste se jako uživatel tsolar a zkontrolujte, zda v tabulce zam jsou stejná data jako v souboru csv.


SQL> connect tsolar/******
Connected.
SQL> select * from zam;
ID JMENO
---------- ----------
1 Tomas
2 Jarka
3 Matej


Utilita sqlloader má více přepínačů, ale funkce je vždy stejná. Máte soubor s daty kontrolní soubor, kde jsou data popsaná. Pak se jen spustí nahrávání.
 

Metalink:
796098.1 - How To Load Data That Has Commas In Customer Name Using Sqlloader
 

 

Anketa

Využívají vaše databáze pro ukládání souborů ASM? (automatic storage management)
 

Certifikát Oracle Certifikát Oracle Certifikát Oracle Certifikát Oracle Certifikát Oracle Certifikát Oracle

Partnerské internetové stránky:
www.oracledba.cz www.asktom.cz www.tomas-solar.cz