このコマンドの助けを借りてshow databases;
私はMySQL。
Oracleで利用可能なデータベースを表示する方法は?
MySQLの「データベース」は、Oracleのスキーマ/ユーザーと考えることができます。特権がある場合は、DBA_USERS
ビューを照会して、スキーマのリストを表示できます。
SELECT NAME FROM v$database;
はOracleのデータベース名を示します
Oracleには、MySQLやMS SQL Serverのような単純なデータベースモデルはありません。最も近いのは、テーブルスペースとその中の対応するユーザーにクエリを実行することです。
たとえば、DEV_DBテーブルスペースには、実際の「データベース」がすべて含まれています。
SQL> SELECT TABLESPACE_NAME FROM USER_TABLESPACES;
その結果:
SYSTEM SYSAUX UNDOTBS1 TEMP USERS EXAMPLE DEV_DB
すべての表領域のユーザーにクエリを実行することもできます。
SQL> select USERNAME, DEFAULT_TABLESPACE from DBA_USERS;
または、特定のテーブルスペース内(例としてDEV_DBテーブルスペースを使用):
SQL> select USERNAME, DEFAULT_TABLESPACE from DBA_USERS where DEFAULT_TABLESPACE = 'DEV_DB';
ROLES DEV_DB
DATAWARE DEV_DB
DATAMART DEV_DB
STAGING DEV_DB
このビューを使用できるかもしれませんが、よくわかりません。
select * from v$database;
しかし、現在のデータベースに関する情報のみを表示すると思います。
他のオプション、dbがLinuxで実行されている場合... whouldは次のようになります:
SQL>!grep SID $TNS_ADMIN/tnsnames.ora | grep -v PLSExtProc
私はそれについて明確ではありませんが、通常、1つのサーバーに1つのデータベース(多くのユーザー)があります。多くのデータベースを作成すると、多くのインスタンス、リスナーなども作成されます。したがって、LISTENER
を確認して特定できます。
私のテストでは、2つのデータベース(dbtest
およびdbtest_1
)を作成したため、LISTENERステータスを確認すると、次のように表示されました。
lsnrctl status
....
リスナーのステータス
.....
(DESCRIPTION =(ADDRESS =(PROTOCOL = tcp)(Host = 10.10.20.20)(PORT = 1521)))
サービスの概要...
サービス「dbtest」には1つのインスタンスがあります。
インスタンス「dbtest」、ステータスREADYには、このサービスの1つのハンドラーがあります...
サービス「dbtest1XDB」には1つのインスタンスがあります。
インスタンス「dbtest1」、ステータスREADYには、このサービスの1つのハンドラーがあります...
サービス「dbtest_1」には1つのインスタンスがあります。
インスタンス "dbtest1"、ステータスREADYには、このサービスの1つのハンドラーがあります...コマンドは正常に完了しました