在数据库应用开发和管理中,经常需要获取主机名和IP地址信息,这些信息与环境变量和相关的数据字典有关
方法1:用函数SYS_CONTEXT获取
使用函数SYS_CONTEXT的属性参数可以返回当前会话主机的名字和IP地址
•terminal------------通常指客户机的名字
•host----------------客户机的完整名字
•ip_address---------客户机的IP地址
•server_host--------运行数据库实例的服务器名称
1SELECT SYS_CONTEXT('USERENV','TERMINAL') AS "客户机名称" FROM DUAL
2
3SELECT SYS_CONTEXT('USERENV','HOST') AS "客户机的完整名称" FROM DUAL
4
5SELECT SYS_CONTEXT('USERENV','IP_ADDRESS') AS "客户机的IP" FROM DUAL
6
7--如果没有客户机连接,则结果显示为空
8SELECT SYS_CONTEXT('USERENV','server_host') FROM DUAL
方法2:使用数据字典v$instance
在v$instance的host_name列中,包含了运行的数据库实例的服务器名称
1--必须具有查看该视图的权限才可以执行此语句
2SELECT HOST_NAME FROM V$INSTANCE
方法3:使用数据字典v$session
视图v$session包含了所有数据库会话的主机信息
•terminal-------通常代表客户端在操作系统终端名
•machine-------可包含域名的客户机名
1SELECT TERMINAL,MACHINE,USERNAME
2 FROM V$SESSION
3 WHERE USERNAME='LIUGANG'
方法4:使用包utl_inaddr
使用包utl_inaddr可查询远处服务器主机名和IP地址
1)包utl_inaddr中的函数get_host_address可返回主机名的ip地址
2)如果指定的主机名为NULL或省略,则返回数据库服务器的ip地址
3)若指定的主机名不正确,则返回错误信息
4)若指定了ip地址,则get_host_name函数返回主机名称
5)若指定的ip地址为null或省略,则返回数据库服务器的名称
1SELECT UTL_INADDR.get_host_address('LINKAGE')
2 FROM DUAL
3
4SELECT UTL_INADDR.get_host_address
5 FROM DUAL
6
7SELECT UTL_INADDR.get_host_name
8 FROM DUAL
posted on 2007-06-06 10:59
LG 阅读(936)
评论(0) 编辑 收藏 引用 所属分类:
Oracle