SQL Plus
Hinweis in eigener Sache
SQL Plus - iPhone4Spiel Support
Ein neuer SEO Contest hat begonnen und ich nehme auch daran teil. Der Suchbegriff ist dieses mal iphone4spiel und ich möchte natürlich auch auf Platz 1 zu kommen. Daher habe ich auf der Seite "SQL Plus - " diesen Hinweis platziert. Jeder, der mich unterstützen möchte, kann gerne einen Link auf http://iphone4spiel.org setzen. Über jeden Link würde ich mich freuen und sage daher schon mal.
Vielen Dank für Eure Unterstützung.
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-ModusSo 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 |
|
- |
|
|
- |
|
|
- |
|
|
ACC |
|
|
A |
|
|
- |
|
|
- |
|
|
BRE |
|
|
BTI |
|
|
C |
|
|
CL |
|
|
COL |
|
|
COMP |
|
|
CONN |
|
|
- |
|
|
DEF |
|
|
- |
|
|
DESC |
|
|
DISC |
|
|
ED |
|
|
EXEC |
|
|
- |
|
|
- |
|
|
- |
|
|
HO |
|
|
I |
|
|
L |
|
|
PASSW |
|
|
PAU |
|
|
PRI |
|
|
PRO |
|
|
- |
|
|
- |
|
|
REM |
|
|
REPF |
|
|
REPH |
|
|
- |
|
|
- |
|
|
R |
|
|
SAV |
|
|
- |
|
|
SHO |
|
|
- |
|
|
SPO |
|
|
- |
|
|
- |
|
|
- |
|
|
TIMI |
|
|
TTI |
|
|
UNDEF |
|
|
VAR |
|
|
- |
|
|
- |
Hier noch Links zu Freunen und Sponsoren, die mir helfen, die sqlplus Doku im Netz zu veröffentlichen:
1. Archivierung Software
2. Lastaufnahmemittel von hebehilfe.de
Trademark Information:
Oracle is a
registered trademark of Oracle Corporation.
Hat Ihnen dieser Beitrag geholfen? Dann speichern Sie Ihne doch bei diesen Diensten:
Wenn Ihnen diese Informationen zu "SQL Plus" gefallen haben, Sie Anregungen oder Kritik haben, dann schreiben Sie mir doch einfach eine E-Mail an M.Jentsch@web.de.




