현재 컨테이너 확인 및 root에서 모든 PDB 조회(CDB_ / CONTAINERS)
Oracle멀티테넌트명령어
-- 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;하는 일
세션이 연결된 컨테이너를 보여 준다. root에서는 CDB_ 뷰와 CONTAINERS() 절로 열려 있는 모든 PDB의 딕셔너리 정보를 하나의 쿼리로 수집한다.
사용 시점
DDL/파라미터 변경 전 올바른 컨테이너에 있는지 확인하고, 모든 PDB에 걸친 공간, 사용자, 객체 인벤토리를 만들기 위해.
주의
읽기 전용. root(CDB$ROOT)에 실수로 애플리케이션 객체나 로컬 사용자를 만들지 않는다. root에서의 ALTER SYSTEM은 CDB 전체에 영향을 준다. CDB_ 뷰와 CONTAINERS()는 열려 있는 PDB만 반환하며, MOUNTED PDB는 결과에 나타나지 않는다.