[SQLPlus](https://docs.oracle.com/cd/B19306_01/server.102/b14357/qstart.htm) to interaktywne narzędzie, które jest instalowane z każdą nowoczesną instalacją Oracle. SQL Plus pozwala wyjść poza standardowe zapytania do bazy danych za pomocą partii, skryptów i obliczeń wykraczających poza normalny zakres Oracle.
Jest nawet możliwe, jak omówimy poniżej – generowanie plików tekstowych, takich jak .csv
, używając danych wyjściowych konkretnego zapytania do bazy danych.
Uruchamianie SQL*Plus
W zależności od instalacji Oracle, możesz mieć dostęp do jednej z wielu różnych wersji lub „trybów” uruchamiania aplikacji SQL*Plus.
Wiersz poleceń SQL*Plus
Jeśli chcesz użyć SQL*Plus Command-line
, po prostu wydasz sqlplus
polecenie z twojej powłoki:
$ sqlplus
Spowoduje to próbę połączenia z domyślnym bazy danych i zostaniesz poproszony o podanie swoich danych uwierzytelniających w celu uwierzytelnienia.
W przypadku, gdy musisz połączyć się z inną database
lub użyj innego user
(schema
), spróbuj wykonać następujące czynności, w razie potrzeby zastępując własne wartości:
$ sqlplus schema@//machine.domain:port/database
iSQL*Plus
Jeśli masz do niego dostęp, możesz użyć iSQL*Plus
, która jest przeglądarkową wersją narzędzia wiersza poleceń SQL*Plus.
W tym celu wystarczy odwiedzić iSQL*Plus URL
dla Twojej bazy danych i instalacji. Dokładny adres URL będzie się różnić, ale zazwyczaj ma następujący format:http://machine_name.domain:port/isqlplus
SQL*Plus dla Windows
Jeśli używasz systemu Windows, dostępna jest również wersja SQL*Plus z graficznym interfejsem użytkownika dla systemu Windows, którą zazwyczaj można uruchomić z menu Start:Start > Programs > Oracle > Application Development > SQL Plus
.
Wyprowadzanie zapytania do pliku
Teraz, gdy masz połączenie z SQL*Plus, możemy rozpocząć tworzenie naszego pliku.
Modyfikuj konfigurację SQL*Plus
Pierwszym krokiem jest skonfigurowanie niektórych ustawień systemu SQL*PLus za pomocą SET
oświadczenie.
W tym przykładzie będziemy ręcznie zmieniać te ustawienia jeden raz przed naszym zapytaniem i wygenerowaniem pliku, ale w razie potrzeby możesz zmienić wartości domyślne różnych ustawień w swoim User Profile
, znajdujący się w login.sql
plik.
set colsep ,
set headsep off
set pagesize 0
set trimspool on
Kilka pierwszych ustawień, których zwykle nie chcesz zmieniać, ale pokrótce wyjaśnimy, co każde z nich osiąga.
colsep
to znak separatora używany do dzielenia kolumn. Dla pliku.csv
plik, to jest prosty przecinek.headsep
to znak separatora dla wiersza nagłówka (jeśli go potrzebujesz). W tym przykładzie nie wyprowadzamy wiersza nagłówka, więc zostawiamyoff
.pagesize
to liczba wierszy „na stronę”. Jest to nieco archaiczne ustawienie przeznaczone do drukowania bez zbyt wielu wierszy na stronie. Z wartością0
, nie używamy stron, ponieważ wysyłamy do pliku. Jeśli zdecydujesz się pokazaćheader
wiersz, ustawpagesize
do bardzo dużej liczby (większej niż oczekiwana liczba rekordów wyników w zapytaniu), więc wiersz nagłówka będzie wyświetlany tylko raz, a nie raz „na stronę”.trimspool
ustaw naon
po prostu usuwa końcowe białe znaki.
Teraz ostatnie dwa ustawienia będą musiały zostać zmienione w zależności od zapytania.
set linesize #
set numwidth #
- Dla
linesize
,#
wartość powinna być całkowitą liczbą kolumn wyjściowych w wynikowym zapytaniu. numwidth
to szerokość kolumny (liczba spacji znaków) używana podczas wyprowadzania wartości liczbowych.
Polecenie SPOOL
Uwaga:SPOOL
polecenie jest niedostępne w przeglądarkowej wersji SQL*Plus, iSQL*Plus
. Aby generować pliki podczas korzystania z iSQL*Plus, zmień niezbędne ustawienia preferencji, aby wyprowadzać bezpośrednio do pliku.
Gdy już zadbaliśmy o nasze ustawienia, musimy teraz powiedzieć SQL*Plus, aby wyprowadził plik. Osiąga się to za pomocą SPOOL
oświadczenie.
Podczas gdy SPOOL
jest aktywny , SQL*PLus zapisze dane wyjściowe dowolnego zapytania do określonego pliku.
Dlatego następnym poleceniem do wprowadzenia jest spool
:
spool file_path
Lekko przeskakuję do przodu, po Twoje zapytanie zostało wstawione, musisz także zatrzymać spool
więc wyjście pliku jest zamykane za pomocą spool off
polecenie:
spool off
Wstaw zapytanie
Ostatni krok po zmodyfikowaniu ustawień i spool
działa jest wstawienie zapytania. W naszym prostym przykładzie wyprowadzamy wszystkie książki z naszych books
tabela.
SELECT
title,
primary_author
FROM
books;
Nie zapomnij o średniku, aby zamknąć instrukcję zapytania, a następnie wprowadź wspomniany spool off
polecenie.
To wszystko, wygenerowałeś nowy plik tekstowy z wynikami zapytania za pomocą SQL*Plus.
Wskazówka:korzystanie z pliku skryptu
Zamiast ręcznie wprowadzać każdą linię, sugeruje się wprowadzenie wszystkich ustawień do nowego pliku skryptu, który można wykonać w SQL*Plus jednym poleceniem.
Utwórz nowy plik skryptu za pomocą EDIT
oświadczenie:
EDIT file_name
Teraz wklej całą listę poleceń skryptu do nowego pliku i zapisz. Pełną zawartość naszego przykładowego skryptu można znaleźć poniżej.
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
Aby wykonać skrypt, po prostu użyj @
symbol, po którym następuje nazwa pliku:
@file_name
Twój skrypt powinien zostać wykonany, a plik .csv
plik utworzony zgodnie z oczekiwaniami.