我的网络上有一个Oracle数据库,我可以使用主机名,端口,用户名,密码和SID连接到Oracle SQL Developer。
我需要连接另一个应用程序(Quantum Gis),但是它使用服务名称而不是SID。
当我通过SID在SQL Developer中连接时,有什么方法可以确定数据库的SERVICE_NAME吗?
我无法访问服务器,也没有本地tnsnames.ora或类似内容。
答案 0 :(得分:43)
使用SID以“system”身份连接到服务器。 执行此查询:
select value from v$parameter where name like '%service_name%';
它对我有用。
答案 1 :(得分:38)
在此处找到,没有DBA:Checking oracle sid and database name
select * from global_name;
答案 2 :(得分:12)
通过
检查数据库的服务名称SQL> show parameter service;
答案 3 :(得分:9)
感谢这个帖子(https://community.oracle.com/thread/473276)
select sys_context('userenv','service_name') from dual;
可以使用常规用户帐户执行,不需要sysdba权限
答案 4 :(得分:5)
所有会话使用的服务的概述在列v$session
中提供了必选视图gv$session
(对于RAC数据库是SERVICE_NAME
)。
要将信息限制为已连接的会话,请使用视图V$MYSTAT
中的SID:
select SERVICE_NAME from gv$session where sid in (
select sid from V$MYSTAT)
如果名称为SYS$USERS
,则会话已连接到默认服务,即,在连接字符串中未指定显式的service_name。
要查看数据库中可用的服务,请使用以下查询:
select name from V$SERVICES;
select name from V$ACTIVE_SERVICES;
答案 5 :(得分:0)
使用"系统"连接到数据库user,并执行以下命令:
show parameter service_name
答案 6 :(得分:-1)
查找ORACLE_SID USE $。 oraenv
答案 7 :(得分:-4)
使用SQL Developer,您也可以在不编写任何查询的情况下找到它。 右键单击您的连接/适当性。
您应该在左侧看到“连接详细信息”之类的名称,并且应该看起来像“Connectionname @ servicename”,或者在右侧,在连接的详细信息下。