[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:https://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.
colsepist das Trennzeichen, das zum Teilen Ihrer Spalten verwendet wird. Für eine.csvDatei, dies ist ein einfaches Komma.headsepist das Trennzeichen für die Kopfzeile (falls Sie eines benötigen). In diesem Beispiel geben wir die Kopfzeile nicht aus, also lassen wir dieseoff.pagesizeist 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 von0verwenden wir keine Seiten, da wir in eine Datei ausgeben. Wenn Sie sich dafür entscheiden, denheaderanzuzeigen Zeile, legen Siepagesizefest 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.trimspoolaufonsetzen 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. numwidthist 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.