web-dev-qa-db-ja.com

Oracleのsidとデータベース名の確認

SIDと現在のデータベース名を確認したい.

Oracle SIDをチェックするために次のクエリを使用しています

select instance from v$thread;

しかし、テーブルまたはビューは存在しませんエラーが来ています。

現在のデータベース名を確認するために次のクエリを使用しています

select name from v$database;

しかし、テーブルまたはビューは存在しませんエラーが来ています。

上記の2つの問題について何か考えはありますか?

94
Adnan

私はselect user from dual;があなたに現在のユーザーを与えるべきであると思います

select sys_context('userenv','instance_name') from dual;インスタンスの名前

SIDをSELECT sys_context('USERENV', 'SID') FROM DUAL;として取得できると思います((これを確認できません

127
V4Vendetta

私のように、データベースのHostと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;

Attセルジオマルセロ

51

完全を期すために、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
44

V $ビューは主にシステムメトリックの動的ビューです。パフォーマンスチューニング、セッションモニタリングなどに使用されます。そのため、デフォルトではアクセスはDBAユーザーに制限されているため、ORA-00942を取得しています。

データベース名を見つける最も簡単な方法は、次のとおりです。

select * from global_name;

このビューはPUBLICに付与されているため、だれでも照会できます。

19
APC

sqlplusコマンドを入力するプロンプト

SQL> select * from global_name;

コマンドプロンプトで結果が表示されます。

SQL ORCL.REGRESS.RDBMS.DEV.US.Oracle.COM

ここで最初の "ORCL"はデータベース名です、あなたのシステムの "XE"とOracleのダウンロード時に与えられたその他のものかもしれません。

4
anant kumar

上記のように、

select global_name from global_name;

行く方法です。

ユーザーに必要な権限がないため、v $ database/v $ instance/v $ threadを照会できませんでした。あなたは(DBAアカウントを介して)それらを付与することができます:

grant select on v$database to <username here>;
2
Phil