我的网络上有一个Oracle数据库,我可以使用主机名,端口,用户名,密码和SID连接到Oracle SQL Developer.
我需要连接另一个应用程序(Quantum Gis),但它使用服务名称而不是SID.
当我通过SID在SQL Developer中连接时,有什么方法可以确定数据库的SERVICE_NAME吗?
我没有访问服务器,也没有本地tnsnames.ora或类似的.
Gou*_*ite 48
在这里找到,没有DBA:检查oracle sid和数据库名称
select * from global_name;
Run Code Online (Sandbox Code Playgroud)
use*_*669 44
使用SID以"system"身份连接到服务器.执行此查询:
select value from v$parameter where name like '%service_name%';
Run Code Online (Sandbox Code Playgroud)
它对我有用.
感谢这个帖子(https://community.oracle.com/thread/473276)
select sys_context('userenv','service_name') from dual;
它可以使用常规用户帐户执行,不需要sysdba权限
所有会话使用的服务概述在该列中提供了专有视图v$session(或gv$session用于RAC数据库)SERVICE_NAME。
要将信息限制为连接的会话,请使用以下视图中的SID V$MYSTAT:
select SERVICE_NAME from gv$session where sid in (
select sid from V$MYSTAT)
Run Code Online (Sandbox Code Playgroud)
如果名称是SYS$USERS会话,则连接到默认服务,即在连接字符串中未指定显式的service_name。
若要查看数据库中可用的服务,请使用以下查询:
select name from V$SERVICES;
select name from V$ACTIVE_SERVICES;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
216235 次 |
| 最近记录: |