SQL*Plus-Prompt in glogin.sql setzen
Die Datei glogin.sql im Verzeichnis $ORACLE_HOME/sqlplus/admin wird bis Oracle 10.1 bei jedem Aufruf von SQL*Plus, seit 10.1 bei jeder neuen Verbindung zu einer Datenbank mit SQL*Plus aufgerufen. SQL*Plus führt alle darin enthaltenen Befehle aus. Anschließend wird die Datei login.sql ausgeführt. Deren Pfad kann abweichend vom Standard mit der Umgebungsvariablen SQLPATH gesetzt werden.
Nutzt man SQL*Plus, so bietet es sich an, die Eingabeaufforderung mit Informationen wie dem eingeloggten Benutzer und der genutzten Datenbankverbindung zu versehen. Dazu editiert man einfach die Datei glogin.sql in $ORACLE_HOME/sqlplus/admin und fügt beispielsweise folgende Zeile an:
SET SQLPROMPT "_USER'@'_CONNECT_IDENTIFIER> "
Ihr Prompt sieht dann beispielsweise so aus:
aschmidt@seg_db>
Mit _DATE kann zusätzlich das aktuelle Datum im Prompt gesetzt werden. _O_RELEASE enthält die Release-Nummer, bspw. "1002000400" für 10.2.0.4. _PRIVILEGE zeigt Privilegien wie "AS SYSDBA", "AS SYSOPER" oder "AS SYSASM". Mit _SQLPLUS_RELEASE können Sie das Release des aktuell genutzten SQL*Plus Binary ansteuern.
Auch eigene Definitionen lassen sich ins Prompt aufnehmen. So können Sie die Oracle-Version ermitteln und diese im Prompt anzeigen lassen:
DEFINE _CURRVER=NN COL ver noprint new_value _CURRVER SET TERMOUT OFF SELECT substr(version, 1, instr(version, '.', 1, 2)-1) AS ver FROM product_component_version WHERE product LIKE 'Oracle Database%'; SET TERMOUT ON SET SQLPROMPT "'<'_CURRVER>':'_USER'@'_CONNECT_IDENTIFIER>"
Bereits seit Oracle Database 10.1 wird die glogin.sql bei jedem erfolgreichen Connect ausgeführt und nicht mehr wie früher nur initial bei einem Start von SQL*Plus. Ihr Prompt wird daher bei jedem Connect aktualisiert.
Es bietet sich natürlich an, gleich um weitere Standard-Settings zu erweitern. So können das Ausgabe-Format von Datums- und Zeitangaben, die Länge der Zeilen, Spaltenformate und vieles mehr gesetzt werden:
SET SQLPROMPT "_USER'@'_CONNECT_IDENTIFIER> " SET pagesize 1000 SET linesize 300 SET trimspool ON SET trimout ON ALTER SESSION SET NLS_DATE_FORMAT = 'dd.mm.yyyy hh24:mi:ss'; COL next_change# FORMAT 999,999,999,999,999 COL first_change# FORMAT 999,999,999,999,999 COL SCN FORMAT 999,999,999,999,999 COL name FORMAT a40
Lutz Fröhlich
held-informatik
de
info