检查oracle sid和数据库名称

Adn*_*nan 104 oracle oracle10g

我想检查SID和当前数据库名称.

我正在使用以下查询来检查oracle SID

select instance from v$thread;
Run Code Online (Sandbox Code Playgroud)

但表或视图不存在错误即将到来.

我正在使用以下查询来检查当前数据库名称

select name from v$database;
Run Code Online (Sandbox Code Playgroud)

但表或视图不存在错误即将到来.

对上述两个问题有什么想法吗?

V4V*_*tta 136

我认为select user from dual;应该给你当前的用户

select sys_context('userenv','instance_name') from dual;实例的名称

我相信你可以得到SID SELECT sys_context('USERENV', 'SID') FROM DUAL;(现在不能检查)

  • `select sys_context('userenv','db_name')from dual;`for database name and sid我已经在答案中添加了.希望这会给你你想要的东西 (8认同)
  • @Adnan它们不一定是相同的,因为可以在一台机器上运行的DB的多个实例由SID识别 (2认同)
  • 请查看[link](http://asktom.oracle.com/pls/asktom/f?p=100:11:1589451392620155::::P11_QUESTION_ID:318216852435) (2认同)

Ser*_*edo 56

如果像我一样,你的目标是获取数据库主机和SID来生成Oracle JDBC URL,如

jdbc:oracle:thin:@<server_host>:1521:<instance_name>
Run Code Online (Sandbox Code Playgroud)

以下命令将有所帮助:

用于检查SID(或实例名称)的Oracle查询命令:

select sys_context('userenv','instance_name') from dual; 
Run Code Online (Sandbox Code Playgroud)

用于检查数据库名称(或服务器主机)的Oracle查询命令:

select sys_context('userenv', 'server_host') from dual;
Run Code Online (Sandbox Code Playgroud)

ATT.塞尔吉奥马塞洛


Pat*_*and 47

为了完整起见,您还可以使用ORA_DATABASE_NAME.

值得注意的是,并非所有方法都能为您提供相同的输出:

SQL> select sys_context('userenv','db_name') from dual;

SYS_CONTEXT('USERENV','DB_NAME')
--------------------------------------------------------------------------------
orcl

SQL> select ora_database_name from dual;

ORA_DATABASE_NAME
--------------------------------------------------------------------------------
ORCL.XYZ.COM

SQL> select * from global_name;

GLOBAL_NAME
--------------------------------------------------------------------------------
ORCL.XYZ.COM
Run Code Online (Sandbox Code Playgroud)


APC*_*APC 21

V $视图主要是系统指标的动态视图.它们用于性能调优,会话监控等.默认情况下,访问仅限于DBA用户,这就是您获得的原因ORA-00942.

查找数据库名称的最简单方法是:

select * from global_name;
Run Code Online (Sandbox Code Playgroud)

此视图被授予PUBLIC,因此任何人都可以查询它.


小智 6

sqlplus命令提示符下键入

SQL> select * from global_name;
Run Code Online (Sandbox Code Playgroud)

然后你会在命令提示符下看到结果

SQL ORCL.REGRESS.RDBMS.DEV.US.ORACLE.COM
Run Code Online (Sandbox Code Playgroud)

这里第一个“ORCL”是数据库名,可能是你的系统“XE”等在oracle下载时给出的。