Při dotazování na Oracle Database můžete použít SPOOL k exportu výsledků dotazu do textového souboru při použití SQLcl.
Příklad
Zde je příklad exportu celé tabulky:
SPOOL '/Users/barney/data/regions.txt';
SELECT * FROM regions;
SPOOL off; Tady je to, co to udělalo, řádek po řádku:
- První řádek používá
SPOOLpříkaz k určení, kam bude výstupní soubor zapsán. Nezapomeňte změnit/Users/barney/data/regions.txtdo umístění ve vašem systému a odpovídající název souboru. - Na druhém řádku jsem spustil SQL dotaz – výsledky, pro které exportuji. V tomto případě jsem exportoval celé
regionsstůl. - Dále jsem zapnul
SPOOLvypnuto.
Takto vypadá výsledný soubor:
REGION_ID REGION_NAME ____________ _________________________ 1 Evropa 2 Amerika 3 Asie 4 Střední východ a Afrika 4 vybrané řádky.
V mém případě můj SQLFORMAT byla nastavena na ansiconsole a výstup to odráží.
Toto můžete změnit na jakýkoli vhodný formát.
Zde je příklad exportu výsledku ve formátu, který lze použít jako soubor importu pomocí sql*loader:
SET SQLFORMAT loader
SPOOL '/Users/barney/data/regions_loader.txt';
SELECT * FROM regions;
SPOOL off;
SET SQLFORMAT ansiconsole Výsledek:
1|"Evropa"| 2|"Amerika"| 3|"Asie"| 4|"Blízký východ a Afrika"|Vybrány 4 řádky.
V tomto případě jsem také resetoval SQLFORMAT zpět na ansiconsole jakmile SPOOL operace byla dokončena.
Odebrat zpětnou vazbu
Můžete odstranit X rows selected s SET FEEDBACK off :
SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt';
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on Výsledek:
REGION_ID REGION_NAME ____________ _________________________ 1 Evropa 2 Amerika 3 Asie 4 Střední východ a Afrika
V tomto případě jsem otočil FEEDBACK zpět po exportu souboru.
Připojit výsledky
Ve výchozím nastavení SPOOL používá REPLACE , který nahradí soubor, pokud již existuje.
Můžeme však použít APPEND argument pro připojení výsledků k souboru.
Příklad:
SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt' APPEND;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on Výsledný soubor:
REGION_ID REGION_NAME ____________ _________________________ 1 Evropa 2 Amerika 3 Asie 4 Blízký východ a Afrika REGION_ID REGION_NAME ______________ Evropa Střední Amerika a Afrika Asie _____3 před AsiíTento příklad připojil výsledky k souboru, který byl vytvořen (a naplněn) v předchozím příkladu. Výsledkem bylo duplikování výsledku v souboru.
Přepsat existující soubor
Můžeme použít
REPLACEpro přepsání existujícího souboru výsledky nového dotazu:SET SQLFORMAT ansiconsole SET FEEDBACK off SPOOL '/Users/barney/data/regions_no_feedback.txt' REPLACE; SELECT * FROM regions; SPOOL off; SET FEEDBACK onVýsledný soubor:
REGION_ID REGION_NAME ____________ _________________________ 1 Evropa 2 Amerika 3 Asie 4 Střední východ a AfrikaJak již bylo zmíněno,
REPLACEje výchozí nastavení, takže jsme tento argument mohli jednoduše vynechat.