[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:https://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.
colsepto znak separatora używany do dzielenia kolumn. Dla pliku.csvplik, to jest prosty przecinek.headsepto znak separatora dla wiersza nagłówka (jeśli go potrzebujesz). W tym przykładzie nie wyprowadzamy wiersza nagłówka, więc zostawiamyoff.pagesizeto 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ćheaderwiersz, ustawpagesizedo 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ę”.trimspoolustaw naonpo 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. numwidthto 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.