[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:https://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.
colsepje oddělovací znak používaný k rozdělení sloupců. Pro.csvsoubor, toto je jednoduchá čárka.headsepje 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.pagesizeje 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, nastavtepagesizena 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“.trimspoolnastavte naonjednoduš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. numwidthje šíř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í.