現在のコンテナを確認し、ルートから全PDBを照会する(CDB_ / CONTAINERS)
OracleMultitenantコマンド
-- Current container:
SHOW CON_NAME
SHOW CON_ID
SHOW PDBS
SELECT SYS_CONTEXT('USERENV','CON_NAME') AS con_name,
SYS_CONTEXT('USERENV','CON_ID') AS con_id
FROM dual;
-- All containers, from the root:
SELECT con_id, name, open_mode FROM v$containers ORDER BY con_id;
-- CDB_ views combine all open PDBs with CON_ID:
SELECT c.name AS container, t.tablespace_name, t.status
FROM cdb_tablespaces t JOIN v$containers c ON c.con_id = t.con_id
ORDER BY c.name, t.tablespace_name;
-- Query any table/view across all PDBs with CONTAINERS():
SELECT con_id, COUNT(*) AS users
FROM CONTAINERS(dba_users)
GROUP BY con_id ORDER BY con_id;概要
セッションが接続しているコンテナを表示する。ルートからは、CDB_ビューとCONTAINERS()句により、オープン中の全PDBのディクショナリ情報を1つのクエリで収集する。
使用する場面
DDL/パラメータ変更前に正しいコンテナにいることの確認、全PDBにわたる領域、ユーザー、オブジェクトの棚卸しに。
注意
読み取り専用。ルート(CDB$ROOT)にアプリケーションオブジェクトやローカルユーザーを誤って作成しない。ルートでのALTER SYSTEMはCDB全体に影響する。CDB_ビューとCONTAINERS()はオープン中のPDBのみを返し、MOUNTEDのPDBは結果に表示されない。