【跟我学oracle18c】第十八天:EXTENDED DATA-LINKED专项测试

版权声明:所有文章禁止转载但是均可在生产中使用提高效率 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漏洞

猜你喜欢

转载自blog.csdn.net/viviliving/article/details/84314373