programmera.net -> oracle -> normal     för utskrift      info@programmera.net

login.sql

1. SQLPATH
2. login.sql
3.
4.

1. SQLPATH

I Oracle kan man sätta upp en fil login.sql som körs varje gång man loggar in via SQL*Plus. För att Oracle ska hitta filen krävs att filen ligger i mappen som pekas ut av systemparametern SQLPATH. För att parametern SQLPATH alltid ska sättas lägger jag till följande kod i .bash_profile på mitt system:

#(2006-08-10) Added for login.sql (SQL*Plus)
SQLPATH=$HOME

export SQLPATH
#(2006-08-10) end
Nu kommer SQL*Plus att leta efter login.sql i min hemkatalog.

2. login.sql

Själva filen login.sql ger jag följande innehåll:

define _editor=vi
set serveroutput on size 1000000
set pagesize 9999

column global_name new_value gname
set termout off
define gname=idle
column global_name new_value gname
select lower(user) || '@' || 
  substr(global_name, 1, decode( dot, 0, length(global_name), dot-1) ) global_name
  from (select global_name, instr(global_name,'.') dot from global_name );
set sqlprompt '&gname> '
set termout on
De tre första raderna utför följande:

  1. Ser till att vi kan editera SQL med "vi" genom att skriva "edit" vid prompten.
  2. Sätter på utskrift, så att allt som skrivs ut med DBMS_OUTPUT verkligen syns på skärmen.
  3. Sätter sidstorleken till ett högt tal så att vi slipper se kolumnamnen så ofta vid SELECT.
De sista raderna kod göra att prompten byts mot "SQL>" till t.ex. "app1@ORCL>". Här är "app1" användaren du är inloggad som och "ORCL" databasen. Detta är mer beskrivande tycker jag.

3.

4.