Seiten

Samstag, 15. Dezember 2012

SQLPLUS - Komfort durch glogin.sql

Bei jedem Verbindungsaufbau mit einer Datenbank führt sqlplus die Datei glogin.sql (ORACLE_HOME\sqlplus\admin\glogin.sql) aus.
In der glogin.sql kann man damit zentral bestimmte Befehle/Einstellungen definieren, die einem die Handhabung erleichtern.

SQLPROMPT:
  • Datum: _date
  • eingeloggter User: _user
  • Privilege: _privilege
  • Datenbank _connect_identifier 
Damit ist schon einmal gewährleistet, dass man immer sieht, ob man als SYS eingeloggt ist. Das Datum kann auch nie schaden.
Weiterhin lassen sich Editor, Spaltenformate usw. definieren.
SQL-Befehle wie "ALTER SESSION..." lassen sich absetzen.

Hier als Beispiel meine Einstellungen:
set feedback off
set linesize 150
set pagesize 2000
set sqlprompt "_date _user _privilege'@'_connect_identifier>"
alter session set nls_date_format='dd.mm.yyyy hh24:mi:ss';
define _editor=c:\Windows\System32\notepad.exe
set serveroutput on size unlimited format wrapped
set long 1000000
set timing on
set feedback on
Das Ergebnis:
Update:
Nach dem Hinweis von Martin Preiss, habe ich das login etwas angepasst.
set feedback off
set linesize 150
set pagesize 2000
alter session set nls_date_format='dd.mm.yyyy hh24:mi:ss';
define _editor=c:\Windows\System32\notepad.exe
set serveroutput on size unlimited format wrapped
set long 1000000
set timing on
--set sqlprompt "_date _user _privilege'@'_connect_identifier>"
col global_name for a50
define gname=idle 
column global_name new_value gname 
select lower(user) || '@' || 
  substr(global_name,1,decode(dot,0,length(global_name),dot-1))
  || ' '  || sysdate  global_name
  from (select global_name,instr(global_name,'.') dot from global_name);
host title &gname 
set feedback on
Da die Logindaten in die Titelzeile wandern, verhindert man so die hässliche Promptverlängerung.

Die passende Doku:

2 Kommentare:

  1. Hallo,

    sehr schönes Blog.
    Zum sqlprompt: eigentlich eine sehr nette Funktion, aber was mich an der Anpassung stört, ist die Verlängerung des prompts, was dann Probleme bei copy+paste mit sich bringt. Als Alternative dazu ändere ich seit einiger Zeit den Namen des cmd-Fensters über den title-Befehl, den man (als host-Kommando) ebenfalls in die glogin (oder in eine individuelle login-Datei im SQLPATH-Verzeichnis) aufnehmen kann. Den Hinweis hatte ich in Rob van Wijks Blog gefunden: http://rwijk.blogspot.de/2011/02/tip-conference-extension-and-challenge.html (dort gibt's auch immer wieder sehr gute Artikel zu komplexeren SQL-Fragestellungen).

    Gruß

    Martin Preiss

    AntwortenLöschen
  2. Moin,
    danke für den Tipp. So gefällt mir das viel besser.
    MfG
    Marco

    AntwortenLöschen