[SQLPlus](https://docs.oracle.com/cd/B19306_01/server.102/b14357/qstart.htm) je interaktivní nástroj, který je dodáván s každou moderní instalací Oracle. SQL Plus vám umožňuje jít nad rámec standardních databázových dotazů pomocí dávek, skriptů a výpočtů nad rámec běžného rozsahu Oracle.
Je dokonce možné, jak prozkoumáme níže – generovat textové soubory, jako je .csv
pomocí výstupu konkrétního databázového dotazu.
Spouštění SQL*Plus
V závislosti na vaší instalaci Oracle můžete mít přístup k jedné z mnoha různých verzí nebo „režimů“, ve kterých můžete spouštět aplikaci SQL*Plus.
Příkazový řádek SQL*Plus
Pokud chcete použít SQL*Plus Command-line
, jednoduše vydáte sqlplus
příkaz z vašeho shellu:
$ sqlplus
Pokusí se vás připojit k výchozímu databáze a budete vyzváni k zadání přihlašovacích údajů, abyste se mohli ověřit.
V případě, že se potřebujete připojit k jiné database
nebo použijte jiného user
(schema
), zkuste následující a podle potřeby nahraďte své vlastní hodnoty:
$ sqlplus schema@//machine.domain:port/database
iSQL*Plus
Pokud k němu máte přístup, možná budete chtít použít iSQL*Plus
, což je verze nástroje příkazového řádku SQL*Plus založená na prohlížeči.
Toho dosáhnete jednoduše návštěvou iSQL*Plus URL
pro vaši databázi a instalaci. Přesná adresa URL se bude lišit, ale obvykle je v následujícím formátu:http://machine_name.domain:port/isqlplus
SQL*Plus pro Windows
Pokud používáte Windows, existuje také verze SQL*Plus s grafickým uživatelským rozhraním Windows, kterou lze obvykle spustit z nabídky Start:Start > Programs > Oracle > Application Development > SQL Plus
.
Výstup dotazu do souboru
Nyní, když jste připojeni k SQL*Plus, můžeme začít vytvářet náš soubor.
Upravit konfiguraci SQL*Plus
Prvním krokem je konfigurace některých nastavení systému SQL*PLus pomocí SET
prohlášení.
V tomto příkladu tato nastavení ručně změníme jednou před naším dotazem a vygenerováním souboru, ale pokud si to přejete, můžete změnit výchozí hodnoty různých nastavení ve svém User Profile
, který se nachází v login.sql
soubor.
set colsep ,
set headsep off
set pagesize 0
set trimspool on
Prvních několik nastavení, která obvykle nebudete chtít měnit, ale stručně vysvětlíme, čeho každé z nich dosahuje.
colsep
je oddělovací znak používaný k rozdělení sloupců. Pro.csv
soubor, toto je jednoduchá čárka.headsep
je oddělovací znak pro řádek záhlaví (pokud jej požadujete). V tomto příkladu nevydáváme řádek záhlaví, takže toto ponechámeoff
.pagesize
je počet řádků „na stránku“. Toto je mírně archaické nastavení, které je určeno pro tisk bez příliš velkého počtu řádků na stránku. S hodnotou0
, stránky nepoužíváme, protože vytváříme výstup do souboru. Pokud se rozhodnete zobrazitheader
řádek, nastavtepagesize
na velmi velký počet (větší než očekávaný počet záznamů v dotazu), takže řádek záhlaví se zobrazí pouze jednou, nikoli jednou „na stránku“.trimspool
nastavte naon
jednoduše odstraní mezery na konci.
Nyní bude potřeba změnit poslední dvě nastavení v závislosti na vašem dotazu.
set linesize #
set numwidth #
- Pro
linesize
,#
hodnota by měl být celkový počet výstupních sloupců ve výsledném dotazu. numwidth
je šířka sloupce (počet znakových mezer) použitá při výstupu číselných hodnot.
Příkaz SPOOL
Poznámka:SPOOL
příkaz není k dispozici ve verzi SQL*Plus pro prohlížeč, iSQL*Plus
. Chcete-li generovat soubory při používání iSQL*Plus, změňte nezbytná nastavení předvoleb na přímý výstup do souboru.
S naším nastavením se postaráme, nyní musíme říci SQL*Plus, aby vytiskl soubor. Toho lze dosáhnout pomocí SPOOL
prohlášení.
Zatímco SPOOL
je aktivní , SQL*PLus uloží výstup jakéhokoli dotazu do zadaného souboru.
Proto je dalším příkazem, který je třeba zadat, spool
:
spool file_path
Mírné přeskakování vpřed, po je vložen váš dotaz, musíte také zastavit spool
takže výstup souboru je uzavřen pomocí spool off
příkaz:
spool off
Vložit dotaz
Poslední krok po úpravě nastavení a spool
běží je vložit váš dotaz. Pro náš jednoduchý příklad vypisujeme všechny knihy z našich books
tabulka.
SELECT
title,
primary_author
FROM
books;
Nezapomeňte na středník pro uzavření dotazu a poté zadejte výše uvedené spool off
příkaz.
To je vše, vygenerovali jste nový textový soubor s výsledky vašeho dotazu pomocí SQL*Plus.
Tip:Použití souboru skriptu
Spíše než ruční zadávání každého řádku se doporučuje zadat všechna nastavení do nového souboru skriptu, který můžete spustit v SQL*Plus jediným příkazem.
Vytvořte nový soubor skriptu pomocí EDIT
prohlášení:
EDIT file_name
Nyní vložte celý seznam příkazů skriptu do nového souboru a uložte. Úplný obsah našeho vzorového skriptu naleznete níže.
set colsep ,
set headsep off
set pagesize 0
set trimspool on
set linesize 2
set numwidth 5
spool books.csv
SELECT
title,
primary_author
FROM
books;
spool off
Pro spuštění skriptu jednoduše použijte @
symbol následovaný názvem souboru:
@file_name
Váš skript by měl být spuštěn a .csv
soubor vytvořen podle očekávání.