如何获取Oracle数据库的IP地址?我不是管理员。
我使用的是一个有权访问该数据库的Oracle应用程序。如何获取数据库的IP地址?
发布于 2014-03-10 19:12:08
从SQL* (Requires specific access rights to the network related functions,因此您作为非管理员可能无法使用它)执行以下操作:
SQL> connect / as sysdba;
Connected.
SQL> SELECT UTL_INADDR.get_host_address from dual;
GET_HOST_ADDRESS
--------------------------------------------------------------------------------
192.168.1.42另请参阅UTL_INADDR documentation。
shell中的(如果您使用the名称解析数据库名称):
$ tnsping InstanceID
Attempting to contact (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=host.dbserver.com)(PORT=1521)) (CONNECT_DATA= (SID=ORCL)))
^^^^^^^^^^^^^^^^^注意HOST输出-这是数据库服务器的主机名。
如果您的应用程序使用JDBC访问数据库,则主机名已经是JDBC连接字符串的一部分。
jdbc:oracle:thin:@host.dbserver.com:1521:ORCL
^^^^^^^^^^^^^^^^^在这两种情况下,您都可以使用ping获取IP地址:
$ ping host.dbserver.com
PING host.dbserver.com (192.168.1.42) 56(84) bytes of data.
^^^^^^^^^^^^发布于 2019-01-24 09:59:03
有几种方法。使用sys_context
SELECT sys_context('USERENV','IP_ADDRESS') FROM DUAL;或使用sys.utl_inaddr
SELECT utl_inaddr.get_host_address FROM DUAL;或使用PL/SQL的相同命令:
SET serveroutput ON
BEGIN
dbms_output.put_line(utl_inaddr.get_host_address);
dbms_output.put_line(sys_context('USERENV','IP_ADDRESS'));
END;
/https://stackoverflow.com/questions/22298460
复制相似问题