2010-03-02 41 views

回答

35
SELECT host_name 
FROM v$instance 
+3

从技术上讲,由于多个服务器可以挂载Oracle数据库,因此'select host_name from gv $ instance'将返回所有主机。但是,上面的查询确实显示了您当前连接到的主持人。 – 2010-03-03 03:16:36

56

如果您没有访问V $视图(由Quassnoi的建议)有两种选择

select utl_inaddr.get_host_name from dual 

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

个人而言,我会倾向于朝最后,因为它不需要任何授权/特权,这使得存储过程更容易。

+8

用于'sys_context()'作为最简单和最合适的解决方案。 – APC 2010-03-03 06:17:42

+4

不使用'sys_context'的唯一原因是它会降低名称,其他2不会。很少会有所作为,但有时候Linux很挑剔。 – Ben 2015-01-24 14:20:11

+5

您可以使用'sys_context('USERENV','SERVICE_NAME')'获取数据库服务名称而不是机器名称。 – bart 2015-05-19 08:25:58

0

我使用此查询为了检索我的Oracle数据库的服务器名称。

SELECT program FROM v$session WHERE program LIKE '%(PMON)%'; 
相关问题