Tip #2: Bestimmen des Instanz-Namens über SQL. (Type: SQL*Plus)

Werbung
Tip #2: Bestimmen des Instanz-Namens über SQL. (Type: SQL*Plus)
Es kann durchaus sinnvoll sein, den Namen der eigenen Instanz zu erfahren. Mit SQL*Plus
oder einem anderen Entwicklungstool wie Oracle*Forms oder Oracle*Reports kann man das.
Aber hier ist ein einfaches SQL Statement mit dem man ebenfalls den Instanz-Namen ab
fragen kann.
Der interne Oracle View 'V$PARAMETER' enthält die viele Werte der Parameter, die die
Datenbank nutzt.
Einer davon ist der Parameter 'DB_NAME'. Dieser enthält den Namen der Datenbank.
Der View V$PARAMETER sieht wie folgt aus:
desc v$parameter
Name
Null?
------------------------------- -------NUM
NAME
TYPE
VALUE
ISDEFAULT
Type
---NUMBER
VARCHAR2(64)
NUMBER
VARCHAR2(512)
VARCHAR2(9)
Das folgende SQL Statement gibt den “database name” aus diesem View zurück:
SELECT UPPER(value)
FROM V$Parameter
WHERE UPPER(name) = 'DB_NAME';
Ein derartiges SQL Statement kann auch dazu genutzt werden, den “standard sql prompt
('SQL>')” mit dem “instance name” zu ersetzen. Das kann hilfreich sein, wenn man m ehrere
Instanzen von SQL*Plus aus zugreifen muss.
Das folgende SQL könnte Bestandteil Ihrer login.sql File werden:
rem Create _DB_Name variable for general use.
set termout off
column upper(VALUE) new_value _DB_NAME;
select upper(value), from v$parameter
where upper(name) = 'DB_NAME';
rem
rem Put SGA Name in sql prompt
set SQLPROMPT '&_DB_NAME.> '
rem
rem If pause is on, say something when needed.
set pause '> '
rem
clear breaks
set termout on
set pause on
set feedback on
Ist der Instanzenname so ähnlich wie 'TESTINST' dann wird Sie das SQL in der login.sql
File auf die entsprechende Instanz „prompten:
TESTINST>
Herunterladen