如何查找Oracle服务名称

And*_*sen 45 oracle

我的网络上有一个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)

  • [GLOBAL_NAME](https://docs.oracle.com/cd/B28359_01/server.111/b28320/statviews_5102.htm#REFRN29019) 获取全局数据库名称,该名称与服务名称不同。(尽管在某些情况下它们可能碰巧具有相同的值。) (3认同)

use*_*669 44

使用SID以"system"身份连接到服务器.执行此查询:

select value from v$parameter where name like '%service_name%';
Run Code Online (Sandbox Code Playgroud)

它对我有用.

  • @GeorgePligor:请注意区别:`JDBC:神谕:薄:@HOST:PORT:SID`但`JDBC:神谕:薄:@HOST:PORT/SERVICE`用正确的值替换大写单词.请注意两个字符串之间的区别:在sid字符串中,sid的名称由前面的字符串分隔:在服务字符串中,名称用前面的字符串用/分隔 (3认同)
  • 对于需要帮助的任何人,请注意,URL需要sid而不是服务名称。完整的服务名称对我不起作用:`jdbc:oracle:thin:@localhost:1521:orcl.athens.intrasoft-intl.private`却有效:`jdbc:oracle:thin:@localhost:1521:orcl ` (2认同)

Dhy*_*das 13

检查数据库的服务名称

sql> show参数服务;

  • `显示参数;`为一切. (4认同)

Car*_*sch 8

感谢这个帖子(https://community.oracle.com/thread/473276)

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

它可以使用常规用户帐户执行,不需要sysdba权限

  • 它返回的全部是SYS $ USERS.我最终与DBA联系,所以这不再是一个问题 (11认同)

Mar*_*ber 6

所有会话使用的服务概述在该列中提供了专有视图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)

  • 当我在机器上直接使用 SQL*Plus 时,这只是对我来说“SYS$USERS”。 (2认同)