SQLPlus

SQL*PLUS ist ein einfaches Tool um SQL Abfragen von einer Oracle
Instanz ausführen zu lassen.

SQL-Plus starten

sqlplus user/passwort@ORACLE_SID
sqlplus user/passwort
sqlplus sys/passwort@ORACLE_SID as sysdba
sqlplus sys/passwort as sysdba
sqlplus “/ as sysdba”
Nur Benutzer die SYSDBA oder SYSOPER Rechte haben, können
sich an der Oracle Instanz als sysdba oder als sysoper anmelden.

SQL-Plus Befehle für Anfänger

SQL-Plus Befehle sind dazu da, die Konfiguration von SQL-Plus zu
ändern und zu ergänzen und um einige zusätzliche
Funktionen die über ein SELECT, UPDATE und DELETE hinausgehen
zur Verfügung zu haben. In den meisten Fällen ist es für
den Anwender leichter sich mit einem Datenbanktool wie z.B. TOAD oder
dem PLSQL-Developer zu rüsten als sich in den Tiefen von
SQL-Plus zu verlieren. Leider ist das nicht immer möglich. Z.B.
wenn die Ergebnisse einer SQLPlus Anfrage mit einem Shellscript in
awk oder sed weiterverarbeitet werden sollen das in regelmäßigen
Abständen per cronjob aufgerufen wird. In dem Fall ist SQL-Plus
die richtige Lösung.

Für die Verwendung von SQL-Plus muss man mindestens einen
Oracle Client installiert haben. Der Aufruf von sqlplus sieht dann
folgendermaßen aus.

%>sqlplus user/passwort@ORACLE_SID

Die ORACLE_SID ist die ID der Oracle Datenbank die verwendet werden
soll. Erhält man bei der Anmeldung den Fehler “ORA-12154:
TNS:Der Servicename konnte nicht aufgelöst werden.” kann
die ORACLE_SID nicht gefunden werden. Die verwendete ORACLE_SID muss
in der Datei tnsnames.ora eingetragen sein, die sich unter [ORACLE
INSTALLATION]/network/ADMIN/tnsnames.ora findet. Ein Eintrag mit der
SID TESTDB könnte beispielsweise so aussehen.

TESTDB_192.168.100.1 =

   (DESCRIPTION =

     (ADDRESS_LIST =

       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.1)(PORT = 1521))

     )

     (CONNECT_DATA =

       (SID = TESTDB)

       (SERVER = DEDICATED)

      )

    )

Hinweis: Es ist möglich die Datei im
Texteditor zu bearbeiten. Besser ist es aber dies nicht zu tun, da
“vor allem ältere Oracle Versionen” sehr alergisch auf
scheinbar korrekte Einträge reagieren. Am besten ist es, man
verwendet ein Tool um hier Einträge zu Ändern.

Wenn man sich nun erfolgreich an der Oracle Datenbank angemeldet
hat, erscheint der folgende Bildschirm.

%>sqlplus XXX/XXX@TESTDB
 

SQL*Plus: Release 9.2.0.1.0 - Production on Di Jan 3 13:22:38 2006

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

Verbunden mit:

Oracle9i Release 9.2.0.4.0 - Production

JServer Release 9.2.0.4.0 - Production

SQL>

Wenn man sich das erste mal mit SQL-Plus an der Oracle Datenbank
anmeldet ist es von Vorteil, wenn man sich erst mal einen Überblick
verschafft, ob man richtig angemeldet ist. Hierzu kann man
unterschiedliche SQL Befehle nutzen, die in den meisten Fällen
schon ausreichend sind.

select TABLE_NAME from USER_TABLES;

Zeigt die Tabellennamen im eigenen Tablespace an.

select DISTINCT TABLESPACE_NAME from USER_TABLES;

Zeigt den Tablespace an in dem man sich gerade befindet.

Darüber hinaus gibt es noch endlos viele Tabellen in denen
man zusätzliche Informationen darüber erfragen kann, die
eine Auskunft über Oracle Datenbank geben können. Auf eine
komplette Auflistung des Oracle Data Dictionary möchte ich an
der Stelle aber verzichten. Wer sich dafür interessiert, kann ja
mal nach “Oracle Data Dictionary” googlen.

Neben den SQL Befehlen SELECT, INSERT, UPDATE gibt es in SQL-Plus
noch eine Reihe weiterer Befehle, die bei der täglichen Arbeit
mit Oracle helfen können. Eine Liste der Befehle erhält man
mit

SQL> HELP INDEX
 

 @             COPY         PAUSE                    SHUTDOWN

 @@            DEFINE       PRINT                    SPOOL

 /             DEL          PROMPT                   SQLPLUS

 ACCEPT        DESCRIBE     QUIT                     START

 APPEND        DISCONNECT   RECOVER                  STARTUP

 ARCHIVE LOG   EDIT         REMARK                   STORE

 ATTRIBUTE     EXECUTE      REPFOOTER                TIMING

 BREAK         EXIT         REPHEADER                TTITLE

 BTITLE        GET          RESERVED WORDS (SQL)     UNDEFINE

 CHANGE        HELP         RESERVED WORDS (PL/SQL)  VARIABLE

 CLEAR         HOST         RUN                      WHENEVER OSERROR

 COLUMN        INPUT        SAVE                     WHENEVER SQLERROR

 COMPUTE       LIST         SET

 CONNECT       PASSWORD     SHOW

Mit diesen Befehlen möchte ich nun den Leser im weiteren an ein
paar Beispielen und mit meinen Erfahrungen vertraut machen.

SQL-Plus Kommandozeilenparameter

SQL-Plus hat eine Reihe von Parametern, die direkt beim Start der
Anwendung übergeben werden können. Eine Übersicht der
SQL-Plus Kommandozeilenparameter kann man mit sich auf der Konsole
anzeigen lassen.

%>sqlplus -h
 

SQL*Plus: Release 9.2.0.1.0 - Production

Verwendung: SQLPLUS [ [<option>] [<logon>] [<start>] ]

wobei <option> ::= -H | -V | [ [-L] [-M <o>] [-R <n>] [-S] ]

      <logon>  ::= <username>[/<password>][@<connect_string>] | / | /NOLOG

      <start>  ::= @<URI>|<filename>[.<ext>] [<parameter> ...]

        "-H" zeigt SQL*Plus-Versions-Banner und Syntax von Verwendung an

        "-V" zeigt SQL*Plus-Versions-Banner an

        "-L" versucht eine einmalige Anmeldung

        "-M <o>" verwendet HTML-Markup-Optionen <o>

        "-R <n>" verwendet eingeschränkten Modus <n>

        "-S" verwendet Ton aus-Modus

So ist es unter anderem möglich, SQL-Anweisungen aus einer Datei
heraus Ausführen zu lassen. Dies ist auch aus einer schon
laufenden SQL-Plus Anwendung heraus möglich, aber vor allem der
Aufruf über die Kommandozeilenparameter ist in vielen Fällen
eine sehr elegante Möglichkeit um z.B. Oracle Daten in einfachen
Shell Skripten zu verwenden. Das sieht dann wie folgt aus:

SQL> sqlplus user/passwort@ORACLE_SID @datei.sql

In dem Fall wird dann die Datei “datei.sql” ausgeführt.
Alle SQL und SQL-Plus Befehle in der Datei werden von oben nach unten
abgearbeitet und auf der Konsole ausgegeben. Ist der letzte Befehl in
der Datei ein “quit”, wird SQL-Plus wieder beendet und das
Shell wird weiter ausgeführt. Wenn man die Ausgaben z.B. mit awk
weiter verarbeiten zu können, ist es sinnvoll, einige
Kleinigkeiten zu beachten:

  • Die Verwendung der option “-S”
    unterdrückt die Informationen beim Starten und Beenden von
    SQL-Plus

  • “SET PAGES 9999″ setzt
    die Größe einer Seite auf 9999 Zeilen. Hierdurch werden
    unnötige Leerzeilen unterdrückt.

  • “SET LIN 9999″ setzt die
    Zeilenlänge auf 9999. Hierdurch wird der Zeilenumbruch
    verhindert.

  • “SET HEADING OFF” unterdrückt die Ausgabe der
    Kopfzeilen.

SQL-Plus Befehlsübersicht

Die nun folgenden 53 SPL-Plus Befehle sind alle in Oracle 9.2
verfügbaren SQL-Plus Befehle. Bei diesen Befehlen ist es egal,
ob sie in Groß- oder in Kleinbuchstaben eingegeben werden. Die
meisten Befehle benötigen mindesten einen oder mehr Parameter.
Eine detaillierte englisch Hilfe zu einem Befehl kann man sich mit
dem SQL-Plus Befehl “HELP” anzeigen lassen. Umfangreiche
deutsche Infos zu den Befehlen gibt es wenn man dem Link zu dem
SQL-Plus Namen der Liste weiter unten folgt :-) .

SQL>HELP [topic]

Kommentare werden in SQL-Plus mit einem “–” am Anfang der
Zeile Markiert.

SQL-Plus Befehl Kurzform
@ -
@@ -
/ -
ACCEPT ACC
APPEND A
ARCHIVE LOG -
ATTRIBUTE -
BREAK BRE
BTITLE BTI
CHANGE C
CLEAR CL
COLUMN COL
COMPUTE COMP
CONNECT CONN
COPY -
DEFINE DEF
DEL -
DESCRIBE DESC
DISCONNECT DISC
EDIT ED
EXECUTE EXEC
EXIT -
GET -
HELP -
HOST HO
INPUT I
LIST L
PASSWORD PASSW
PAUSE PAU
PRINT PRI
PROMPT PRO
QUIT -
RECOVER -
REMARK REM
REPFOOTER REPF
REPHEADER REPH
RESERVED WORDS (SQL)
-
RESERVED WORDS
(PL/SQL)
-
RUN R
SAVE SAV
SET -
SHOW SHO
SHUTDOWN -
SPOOL SPO
START -
STARTUP -
STORE -
TIMING TIMI
TTITLE TTI
UNDEFINE UNDEF
VARIABLE VAR
WHENEVER OSERROR -
WHENEVER SQLERROR -

Hier noch Links zu Freunen und Sponsoren, die mir helfen, die sqlplus Doku im Netz zu veröffentlichen:

1. Archivierung Software

Englische
SQL-Plus Doku


Trademark Information:
Oracle is a
registered trademark of Oracle Corporation.

Michael Jentsch

Michael Jentsch arbeitet seit 2006 bei der Itellium Services GmbH als Entwickler und Software Architekt. Er ist spezialisiert auf Java basierte Web-Applikationen und E-Commerce. Neben dem Beruf interessiert er sich auch für Suchmaschinenoptimierung und ist engagiert in vielen Open Source Projekten im Web Umfeld. Sie erreichen ihn per E-Mail unter [email protected].

More Posts