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 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 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.
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 |
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:
Englische
SQL-Plus Doku
No related posts.
]]>ACCEPT variable [NUMBER|CHAR|DATE] [FORMAT format] [DEFAULT default] [PROMPT text|NOPROMPT] [HIDE]
ACCEPT Beschreibung:
Liest eine Zeile aus dem Eingabepuffer (User
Eingabe) und speichert sie in einer vorgegebenen Variable.
variable
Der Name der Variable,
in der die Eingabe gespeichert wird. Eine existierende Variable wird
überschreiben. Eine nicht existierende Variable wird von
SQL-Plus angelegt.
NUMBER CHAR DATE
Festlegung des
Datentyps. Wenn Die Eingabe nicht mit dem vorgegebenen Datentyp
übereinstimmt, wird SQL-Plus einen Fehler ausgeben und
wiederholt zur Eingabe auffordern. Die max. Länge für den
Datentype CHAR ist 240 Zeichen.
FORMAT
Festlegung des
Eingabeformats. Wenn Die Eingabe den Formatvorgaben nicht
entspricht, wird ein Fehler ausgegeben und erneut zur Eingabe
aufgefordert. Der Format String kann folgendermaßen
aussehen:
Z.B. ‘dd/mm/yy’, A10 oder 9.999.
Die Liste der
möglichen Formatvorgaben kann unter ‘SQL-Plus
Formate‘ nachgelesen werden.
DEFAULT
Der Default Wert, falls
keine Eingabe gemacht wird.
PROMPT NOPROMPT
Mit PROMPT kann
man vor der Eingabeaufforderung einen Text anzeigen lassen. Mit
NOPROMPT wird kein
Text ausgegeben.
Auf den Webseiten von Oracle
finden Sie weiterführende Infos zum ACCEPT Befehl.
No related posts.
]]>APPEND text
APPEND Beschreibung:
Hängt den mit ‘text’ angegebenen Text an
das Ende der Zeile im SQL Puffer. Unter www.Oracle.com
finden Sie weitere Infos zum APPEND Befehl.
Related posts:
]]>ARCHIVE LOG {LIST|STOP}|{START|NEXT|ALL|integer}[TO destination]
ARCHIVE LOG Beschreibung:
Starten oder Stoppen der automatischen
Archivierung von “online redo log files”, manuelles
Archivieren von vorgegebenen “redo log files” und Anzeigen
von Informationen über die “redo log files” ist mit
dem ARCHIVE LOG Befehl möglich.
Unter www.Oracle.com finden
Sie immer die aktuellen Neuerungen zum ARCHIVE LOG Befehl.
Related posts:
]]>@ { uri | file_name[.ext] } [arg ...]
@ Beschreibung:
Mit dem @ [at] Befehl können Sie ein SQL
Skript ausführen.
Das SQL Skript Das Skript kann vom lokalen
Dateisystem oder von einem Webserver aufgerufen werden. In dem SQL
Skript können alle in Oracle verwendeten SQL Statements und die
in SQL-Plus möglichen SQL-Plus Befehle Aufgerufen werden.
Ein
SQL Skript kann SQL-Plus nach der Ausführung beenden, wenn in
der letzten Zeile des Skripts ein “QUIT” eingegeben wird.
Die Verwendung von Kommentaren ist auch möglich. Kommentare
beginnen immer mit –, alle folgenden Anweisungen in der Zeile werden
nicht ausgeführt.
Parameter können mit @dateiname arg1
arg2 … angegeben werden. In dem ausgeführten SQL Skript werden
die Parameter arg1, arg2, … mit der Angabe von &1 &2 …
verwendet. Der @ [at] Befehl bietet viele Möglichkeiten, zur
Verwendung von selbst definierten Makros und Shell Skripten die auf
Daten einer Oracle Datenbank zugreifen.
Weiterführende
Informationen zu dem @ [at] Befehl und zu den Möglichkeiten in
SQL-Plus finden Sie auf den Webseiten von Oracle.
Related posts:
]]>@@ file_name[.ext]
@@ Beschreibung:
Mit dem @@ [at][at] Befehl können Sie eine SQL Skript aus einem anderen SQL-Skript heraus ausführen. Das mit @@ aufgerufene SQL Skript wird unter dem gleichen Pfad oder URI gesucht, in dem sich das aufrufende SQL-Skript befindet. Alles weitere ist identisch mit dem @ [at] Befehl.
Zusätzliche Infos zu dem @@ [at][at] Befehl finden Sie auf den Webseiten von Oracle.
Oracle is a registered trademark of Oracle Corporation.
Related posts:
]]>/ Aufruf:
/
/ Beschreibung:
Das / [slash] Kommando führt das letzte auf
der Kommandozeile eingegebene Skript noch einmal aus, ohne es auf der
Konsole auszugeben. Der / [slash] Befehl ist sehr hilfreich wenn es
darum geht, einen Befehl in SQL-Plus mehrmals auszuführen.
Mehr zum / [slash] in den Online-Dokumentationen der
Webseiten von Oracle.
Trademark Information:
Oracle is a registered trademark of Oracle Corporation.
Related posts:
]]>ATTRIBUTE Aufruf:
ATTRIBUTE [type_name.attribute_name [option...]]
ATTRIBUTE Beschreibung:
Mit ATTRIBUTE kann man “Display”
Attribute für ein Objektattribut definieren oder sich die Liste
der definierten Attribute anzeigen lassen. Es ist auch möglich
sich nur ein einziges Attribut anzeigen zu lassen.
Mögliche Options:
ALI[AS] alias
CLE[AR]
FOR[MAT]
format
LIKE {type_name.attribute_name|alias}
ON|OFF
Trademark Information:
Oracle is a
registered trademark of Oracle Corporation.
Related posts:
]]>BREAK Aufruf:
BREAK [ON report_element [action [action]]] ...
BREAK Beschreibung:
Mit dem BREAK Befehl kann man die Formatierung
eines Reports in SQL-Plus bestimmen. Ohne Angabe von Parametern wird
nur die Aktuelle BREAK Definition ausgegeben.
Das “report_element” hat folgende
Syntax:
{column|expr|ROW|REPORT}
Die “action” hat folgende Syntax:
[SKI[P] n|[SKI[P]]
PAGE] [NODUP[LICATES]|DUP[LICATES]]
Die vollständige Beschreibung des BREAK Befehls
entnehmen Sie bitte dem Dokument: “SQL*Plus User’s Guide and
Reference” von Oracle, das auch als PDF bei Oracle
erhältlich ist.
“SQL*Plus
User’s Guide and Reference”
Trademark Information:
Oracle is a
registered trademark of Oracle Corporation.
No related posts.
]]>BTITLE Aufruf:
BTI[TLE] [printspec [text|variable] ...]|[ON|OFF]
BTITLE Beschreibung:
Dient zur Festlegung des Formates der Titel
am Ende jedes Reports. Mit BTITLE kann man sich auch die Liste der
BTITLE Definitionen anzeigen lassen.
Weitere Informationen zu den
“printspec” Parametern sind in der “TTITLE”
Doku zu finden.
Trademark Information:
Oracle is a registered trademark of Oracle Corporation.
Related posts:
]]>