2010-03-02 11 views

Antwort

35
SELECT host_name 
FROM v$instance 
+3

Da mehrere Server eine Oracle-Datenbank mounten können, würde 'host_name from gv $ instance' alle Hosts zurückgeben. Die obige Abfrage zeigt jedoch den Host an, mit dem Sie in dieser Sitzung gerade verbunden sind. –

56

Wenn Sie keinen Zugriff auf die v $ Ansichten (wie von Quassnoi vorgeschlagen) gibt es zwei Alternativen

select utl_inaddr.get_host_name from dual 

und

select sys_context('USERENV','SERVER_HOST') from dual 

Persönlich würde ich dazu neigen, in Richtung das letzte, da es keine Gewährungen/Privilegien erfordert, die es aus gespeicherten Prozeduren erleichtert.

+8

+1 für 'sys_context()' als die einfachste und am besten geeignete Lösung. – APC

+4

Der einzige Grund, 'sys_context' nicht zu verwenden, ist, dass der Name kleiner ist, die anderen beiden nicht. Es ist selten, dass das überhaupt einen Unterschied macht, aber manchmal ist Linux wählerisch. – Ben

+5

Sie können 'sys_context ('USERENV', 'SERVICE_NAME')' verwenden, um den Namen des Datenbankdienstes anstelle des Computernamens abzurufen. – bart

0

Ich verwende diese Abfrage, um den Servernamen meiner Oracle-Datenbank abzurufen.

Verwandte Themen