2014-03-14 57 views
27

我的网络上有一个Oracle数据库,我可以使用主机名,端口,用户名,密码和SID连接到Oracle SQL Developer。如何查找Oracle服务名称

我需要连接另一个应用程序(Quantum Gis),但它使用服务名称而不是SID。

当我通过SID连接到SQL Developer时,有什么方法可以确定数据库的SERVICE_NAME吗?

我无权访问服务器并且没有本地tnsnames.ora或类似文件。

+3

Jakobsen:只需运行命令'Show parameter service_name' –

+1

@GauravSoni AFAIK'show parameter'是一个SQL/Plus命令,我不确定SQL Developer是否支持SQL/Plus提示。如果没有,那么OP可以使用'select * from v $参数,其中名称'%service_name%''代替。 –

+0

“显示参数service_name;”返回错误“显示参数查询失败”。 –

回答

10

由于这个线程(https://community.oracle.com/thread/473276

select sys_context('userenv','service_name') from dual;

它可以与普通用户帐户执行,不需要SYSDBA权限

+10

它返回的是SYS $ USERS。我最终与DBA取得了联系,所以这不再是问题 –

+0

这实际上确实返回了TNSNames中为我定义的当前Service_name。有一个upvote。 – Marco

+0

它也适用于我 - 一个更多upvote – TheRoadrunner

30

连接到服务器“系统”采用SID。 执行此查询:

select value from v$parameter where name like '%service_name%'; 

它为我工作。

+1

对于需要帮助的任何人请注意,url需要sid而不是服务名称。完整的服务名称不适用于我:'jdbc:oracle:thin:@localhost:1521:orcl.athens。这个工作:'jdbc:oracle:thin:@localhost:1521:orcl' –

+0

@GeorgePligor:请注意区别:'jdbc:oracle:thin:@主机:端口:SID'但是'jdbc :oracle:thin:@HOST:PORT/SERVICE'用大写字母替换正确的值。请注意两个字符串之间的区别:在sid字符串中,sid的名称由a分隔:由前面的字符串分隔,在服务字符串中,名称由前面的字符串中的/分开 – miracle173

10

检查数据库的服务名称由

sql> show parameter service;

+2

'SHOW PARAMETERS;'for一切。 – akki

0

连接到与 “系统” 的用户数据库,并执行以下命令:

show parameter service_name 
28

这里找到,没有DBA:Checking oracle sid and database name

select * from global_name; 
+0

非常感谢,这个由Oracle SQL Developer为我工作。 –

+0

谢谢,在我的情况下,服务名称是“XE”。 –

-3

使用SQL Developer,你也应该找到它无需编写任何查询。 右键单击您的Connection/Propriety。

您应该在左侧的名称下方看到“连接详细信息”,并且应该看起来像“Connectionname @ servicename”,或者在连接的详细信息的右侧。

+0

不,它可能是SID或服务名称,你永远不知道...... – Betlista

相关问题