版权声明:所有文章禁止转载但是均可在生产中使用提高效率 https://blog.csdn.net/viviliving/article/details/84314373
EXTENDED DATA-LINKED:共享公共对象的元数据和数据给Application PDB,在Application PDB内可以查询公共对象在Application root内存储的数据,对Application root内存储的数据不能进行DML操作,但在Application PDB内可插入本地数据,EXTENDED DATA-LIKED更像是METADATA-LIKED和DATA LIKED的结合。
这句话整理出来几点:
1、共享公共对象的元数据和数据给Application PDB,要通过SYNC子句
2、对Application root内存储的数据不能进行DML操作
3、但在Application PDB内可插入本地数据
实践活动:
环境:(同METADATA-LINKED专项测试):
实例:
一、Application root 中创建 EXTENDED DATA-LINKED表
SQL> ALTER PLUGGABLE DATABASE APPLICATION saas_sales_app BEGIN UPGRADE '3.0' to '4.0';
Done
SQL>
SQL> CREATE TABLE zipcodes_edt SHARING=EXTENDED DATA
2 (code VARCHAR2(5),
3 country_id NUMBER,
4 region VARCHAR2(10));
Table created
SQL>
SQL> INSERT INTO zipcodes_edt VALUES ('08820','1','East');
1 row inserted
SQL> INSERT INTO zipcodes_edt VALUES ('10005','1','East');
1 row inserted
SQL> INSERT INTO zipcodes_edt VALUES ('44332','1','North');
1 row inserted
SQL> INSERT INTO zipcodes_edt VALUES ('94065','1','West');
1 row inserted
SQL> INSERT INTO zipcodes_edt VALUES ('73301','1','South');
1 row inserted
SQL> COMMIT;
Commit complete
SQL> ALTER PLUGGABLE DATABASE APPLICATION saas_sales_app END upgrade to '4.0';
Done
SQL> select * from zipcodes_edt;
CODE COUNTRY_ID REGION
----- ---------- ----------
08820 1 East
10005 1 East
44332 1 North
94065 1 West
73301 1 South
SQL> select * from containers(zipcodes_edt);
二、pdbs内部测试
SQL> ALTER PLUGGABLE DATABASE APPLICATION saas_sales_app SYNC;
Done
SQL> select * from saas_sales_adm.zipcodes_edt;
CODE COUNTRY_ID REGION
----- ---------- ----------
08820 1 East
10005 1 East
44332 1 North
94065 1 West
73301 1 South
SQL> INSERT INTO saas_sales_adm.zipcodes_edt VALUES ('73331','1','South');
1 row inserted
SQL> select * from saas_sales_adm.zipcodes_edt;
CODE COUNTRY_ID REGION
----- ---------- ----------
08820 1 East
10005 1 East
44332 1 North
94065 1 West
73301 1 South
73331 1 South
SQL> delete saas_sales_adm.zipcodes_edt where code='08820';
0 rows deleted
三、Application root 中查询
SQL> select * from containers(zipcodes_edt);
CODE COUNTRY_ID REGION CON_ID
----- ---------- ---------- ----------
08820 1 East 6
10005 1 East 6
44332 1 North 6
94065 1 West 6
73301 1 South 6
08820 1 East 9
10005 1 East 9
44332 1 North 9
94065 1 West 9
73331 1 South 9
10 rows selected
分析:
EXTENDED DATA-LINKED对于pdbs是可读,可写,但是对root区域的数据dml是不允许的。
发现这里应该是18c的缺陷还是bug:
参见下文
【跟我学oracle18c】第十八天:EXTENDED DATA-LINKED专项测试中发现的oracle18c漏洞