该特性支持在CDB根容器下,查询其他PDB中的表/视图的信息。但是这个表/视图必须同时存在所有PDB和CDB中。
如:
格式
SELECT * FROM CONTAINERS(lei.test_ab) WHERE CON_ID IN (3);
CON_ID可以通过show con_id,v$pdbs查询
SQL> select con_id,name from v$pdbs; CON_ID NAME ---------- ------------------------------------------------------------ 2 PDB$SEED 3 ZHIXIN 4 ZHIXIN2 5 ZHIXIN4 6 LEI
SQL> alter session set container=zhixin; Session altered.
SQL> select count(*) from lei.test_ab; COUNT(*) ---------- 2393
如果表不是所有PDB都有的,那么报错。
SQL> SELECT * FROM CONTAINERS(lei.test_ab) WHERE CON_ID IN (3); SELECT * FROM CONTAINERS(lei.test_ab) WHERE CON_ID IN (3) * ERROR at line 1: ORA-00942: table or view does not exist
查询PDB中的dba_objects
SQL>SELECT count(*) FROM CONTAINERS(dba_objects) WHERE CON_ID IN (3); COUNT(*) ---------- 91241
查询CDB中的dba_objects
SQL>SELECT count(*) FROM dba_objects; COUNT(*) ---------- 91305
两个不同级别的查询,显示的内容也是不一样的。
版权声明:本文为博主原创文章,未经博主允许不得转载。