[SQLPlus](https://docs.oracle.com/cd/B19306_01/server.102/b14357/qstart.htm) ist ein interaktives Tool, das mit jeder modernen Oracle-Installation installiert wird. SQL Plus ermöglicht es Ihnen, über die standardmäßigen Datenbankabfragen mit Batches, Skripten und Berechnungen hinauszugehen, die über den normalen Umfang von Oracle hinausgehen.
Es ist sogar möglich, wie wir weiter unten untersuchen werden, Textdateien wie .csv
zu generieren , unter Verwendung der Ausgabe einer bestimmten Datenbankabfrage.
SQL*Plus starten
Abhängig von Ihrer Oracle-Installation haben Sie möglicherweise Zugriff auf eine von vielen verschiedenen Versionen oder „Modi“, in denen Sie die SQL*Plus-Anwendung ausführen können.
SQL*Plus-Befehlszeile
Wenn Sie die SQL*Plus Command-line
verwenden möchten , geben Sie einfach sqlplus
aus Befehl von Ihrer Shell:
$ sqlplus
Dadurch wird versucht, Sie mit dem Standard zu verbinden Datenbank und Sie werden aufgefordert, Ihre Anmeldeinformationen einzugeben, um sich zu authentifizieren.
Falls Sie eine Verbindung zu einer anderen database
herstellen müssen oder verwenden Sie einen anderen user
(schema
), versuchen Sie Folgendes und ersetzen Sie bei Bedarf Ihre eigenen Werte:
$ sqlplus schema@//machine.domain:port/database
iSQL*Plus
Wenn Sie Zugriff darauf haben, möchten Sie vielleicht iSQL*Plus
verwenden , eine browserbasierte Version des SQL*Plus-Befehlszeilentools.
Besuchen Sie dazu einfach die iSQL*Plus URL
für Ihre Datenbank und Installation. Die genaue URL variiert, hat aber normalerweise das folgende Format:http://machine_name.domain:port/isqlplus
SQL*Plus für Windows
Wenn Sie Windows verwenden, gibt es auch eine Windows-GUI-Version von SQL*Plus, die normalerweise über Ihr Startmenü gestartet werden kann:Start > Programs > Oracle > Application Development > SQL Plus
.
Ausgabe einer Abfrage in eine Datei
Nachdem Sie nun mit SQL*Plus verbunden sind, können wir mit der Erstellung unserer Datei beginnen.
SQL*Plus-Konfiguration ändern
Der erste Schritt besteht darin, einige SQL*PLus-Systemeinstellungen mit SET
zu konfigurieren Aussage.
In diesem Beispiel werden wir diese Einstellungen einmal vor unserer Abfrage und Dateigenerierung manuell ändern, aber falls gewünscht, können Sie die Standardeinstellungen verschiedener Einstellungen in Ihrem User Profile
ändern , befindet sich in login.sql
Datei.
set colsep ,
set headsep off
set pagesize 0
set trimspool on
Die ersten paar Einstellungen möchten Sie normalerweise nicht ändern, aber wir erklären kurz, was die einzelnen bewirken.
colsep
ist das Trennzeichen, das zum Teilen Ihrer Spalten verwendet wird. Für eine.csv
Datei, dies ist ein einfaches Komma.headsep
ist das Trennzeichen für die Kopfzeile (falls Sie eines benötigen). In diesem Beispiel geben wir die Kopfzeile nicht aus, also lassen wir dieseoff
.pagesize
ist die Anzahl der Zeilen „pro Seite“. Dies ist eine leicht archaische Einstellung, die zum Drucken ohne zu viele Zeilen pro Seite gedacht ist. Mit einem Wert von0
verwenden wir keine Seiten, da wir in eine Datei ausgeben. Wenn Sie sich dafür entscheiden, denheader
anzuzeigen Zeile, legen Siepagesize
fest auf eine sehr große Anzahl (größer als die erwartete Anzahl von Datensatzergebnissen in der Abfrage), sodass Ihre Kopfzeile nur einmal und nicht einmal „pro Seite“ angezeigt wird.trimspool
aufon
setzen entfernt einfach abschließende Leerzeichen.
Jetzt müssen die letzten beiden Einstellungen je nach Ihrer Anfrage geändert werden.
set linesize #
set numwidth #
- Für
linesize
, der#
Wert sollte die Gesamtzahl der Ausgabespalten in Ihrer resultierenden Abfrage sein. numwidth
ist die Spaltenbreite (Anzahl der Leerzeichen), die bei der Ausgabe numerischer Werte verwendet wird.
SPOOL-Befehl
Hinweis:Der SPOOL
Befehl ist nicht verfügbar in der browserbasierten SQL*Plus-Version iSQL*Plus
. Um Dateien während der Verwendung von iSQL*Plus zu generieren, ändern Sie die erforderlichen Voreinstellungen so, dass sie direkt in eine Datei ausgegeben werden.
Nachdem unsere Einstellungen vorgenommen wurden, müssen wir SQL*Plus jetzt anweisen, eine Datei auszugeben. Dies geschieht über den SPOOL
Aussage.
Während SPOOL
ist aktiv , speichert SQL*PLus die Ausgabe jeder Abfrage in der angegebenen Datei.
Daher ist der nächste einzugebende Befehl spool
:
spool file_path
Leicht nach vorn springen, nach Wenn Ihre Abfrage eingefügt ist, müssen Sie auch spool
anhalten also wird die Dateiausgabe mit spool off
geschlossen Befehl:
spool off
Fügen Sie die Abfrage ein
Der letzte Schritt nach dem Ändern der Einstellungen und spool
ausgeführt wird, ist Ihre Abfrage einzufügen. In unserem einfachen Beispiel geben wir alle Bücher aus unseren books
aus Tabelle.
SELECT
title,
primary_author
FROM
books;
Vergessen Sie nicht das Semikolon, um Ihre Abfrageanweisung abzuschließen, und geben Sie dann den oben erwähnten spool off
ein Befehl.
Sie haben mit SQL*Plus eine neue Textdatei mit den Ergebnissen Ihrer Abfrage generiert.
Tipp:Verwenden einer Skriptdatei
Anstatt jede Zeile manuell einzugeben, wird empfohlen, alle Einstellungen in eine neue Skriptdatei einzugeben, die Sie in SQL*Plus mit einem einzigen Befehl ausführen können.
Erstellen Sie eine neue Skriptdatei mit dem EDIT
Aussage:
EDIT file_name
Fügen Sie nun die gesamte Skriptbefehlsliste in Ihre neue Datei ein und speichern Sie sie. Den vollständigen Inhalt unseres Beispielskripts finden Sie unten.
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
Um das Skript auszuführen, verwenden Sie einfach den @
Symbol gefolgt vom Dateinamen:
@file_name
Ihr Skript sollte ausgeführt werden und die .csv
Datei wie erwartet erstellt.