2010-03-02 20 views

risposta

35
SELECT host_name 
FROM v$instance 
+3

Tecnicamente, come più server possono montare un database Oracle, 'selezionare nome_host da gv $ istanza' restituirebbe tutti gli host. La query sopra mostra tuttavia l'host al quale sei attualmente connesso in quella sessione. –

56

Se non si ha accesso al V $ viste (come suggerito da Quassnoi) ci sono due alternative

select utl_inaddr.get_host_name from dual 

e

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

Personalmente mi piacerebbe tendere l'ultimo in quanto non richiede alcuna concessione/privilegio che lo rende più facile da stored procedure.

+8

+1 per 'sys_context()' come la soluzione più semplice e più appropriata. – APC

+4

L'unico motivo per non usare 'sys_context' è che si riduce il nome al caso, mentre gli altri 2 no. È raro che ciò faccia qualche differenza, ma a volte Linux è pignolo. – Ben

+5

Puoi usare 'sys_context ('USERENV', 'SERVICE_NAME')' per ottenere il nome del servizio del database invece del nome del computer. – bart

0

Io uso questa query per recuperare il nome del server del mio database Oracle.

SELECT program FROM v$session WHERE program LIKE '%(PMON)%'; 
Problemi correlati