我想检查SID和当前数据库名称。
我正在使用以下查询来检查oracle SID
select instance from v$thread;
但是表或视图不存在错误即将到来。
我正在使用以下查询来检查当前数据库名称
select name from v$database;
但是表或视图不存在错误即将到来。
对上述两个问题有什么想法吗?
发布于 2011-06-09 12:46:34
我认为SELECT user FROM dual;
应该给你当前的用户
和SELECT sys_context('userenv','instance_name') FROM dual;
作为实例的名称
我相信你可以让希德当SELECT sys_context('USERENV', 'SID') FROM DUAL;
发布于 2013-12-12 01:01:32
如果像我一样,您的目标是让数据库主机和SID生成Oracle JDBC url,则如下所示
jdbc:oracle:thin:@<server_host>:1521:<instance_name>
以下命令将有所帮助:
用于检查SID (或实例名称)的Oracle查询命令:
select sys_context('userenv','instance_name') from dual;
用于检查数据库名称(或服务器主机)的Oracle查询命令:
select sys_context('userenv', 'server_host') from dual;
阿特。塞尔吉奥·马塞洛
发布于 2011-06-14 10:28:16
出于完整性考虑,您也可以使用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
https://stackoverflow.com/questions/6288122
复制相似问题