我想檢查SID和當前數據庫名稱。檢查Oracle sid和數據庫名稱
我使用下面的查詢檢查的Oracle SID
select instance from v$thread;
但表或視圖不存在錯誤來了。
我使用下面的查詢檢查當前數據庫名
select name from v$database;
但表或視圖不存在錯誤來了。
以上兩個問題的任何想法?
我想檢查SID和當前數據庫名稱。檢查Oracle sid和數據庫名稱
我使用下面的查詢檢查的Oracle SID
select instance from v$thread;
但表或視圖不存在錯誤來了。
我使用下面的查詢檢查當前數據庫名
select name from v$database;
但表或視圖不存在錯誤來了。
以上兩個問題的任何想法?
我相信select user from dual;
應該給你當前用戶
和select sys_context('userenv','instance_name') from dual;
實例
的名字,我相信你可以得到SID爲SELECT sys_context('USERENV', 'SID') FROM DUAL;
(
不能檢查這個現在
)
V $視圖主要是系統度量的動態視圖。它們用於性能調整,會話監控等。因此,默認情況下訪問僅限於DBA用戶,這就是爲什麼您要獲得ORA-00942
。
查找數據庫名稱的最簡單的方法是:
select * from global_name;
這一觀點被授予PUBLIC,所以任何人都可以查詢。
有關oracle SID的內容?是否有任何方法從斯科特賬戶中檢查它? – Adnan 2011-06-09 08:59:42
正如上面提到,
select global_name from global_name;
是要走的路。
您無法查詢v $ database/v $ instance/v $線程,因爲您的用戶沒有所需的權限。您可以(通過DBA賬戶)授予他們:
grant select on v$database to <username here>;
只是爲了完整性,您還可以使用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
上述查詢不需要特殊權限。僅通過創建具有CONNECT權限的新用戶進行驗證。 – bdeem 2015-08-03 15:18:33
如果像我一樣,你的目標是獲得數據庫主機和SID生成一個甲骨文JDBC URL,如
jdbc:oracle:thin:@<server_host>:1521:<instance_name>
以下命令將幫助:
Oracle查詢命令檢查SID(或實例名):
select sys_context('userenv','instance_name') from dual;
Oracle查詢命令檢查數據庫名稱(或服務器主機):
select sys_context('userenv', 'server_host') from dual;
ATT。 塞爾吉奧·馬塞洛
完美。這正是我想知道的,但不知道如何表達。 – Addison 2016-07-20 07:13:35
我也是。謝謝塞爾吉奧! – horseatingweeds 2017-04-05 22:31:58
類型上sqlplus
命令提示符
SQL> select * from global_name;
則u會看到結果在命令提示符下
SQL ORCL.REGRESS.RDBMS.DEV.US.ORACLE.COM
這裏第一個「ORCL」是數據庫的名稱,可能是你的系統「 XE「以及其他關於oracle下載時間的內容。
謝謝,你讓我的一天。 – 2015-11-04 10:25:30
感謝您的快速回復。實例和oracle SID一樣嗎? – Adnan 2011-06-09 04:49:15
@Adnan他們不需要是相同的,因爲可以在單個機器上運行的數據庫的多個實例通過SID確定 – V4Vendetta 2011-06-09 04:51:34
@adnan您是否得到了所需的值? – V4Vendetta 2011-06-09 05:08:09