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

版权声明:所有文章禁止转载但是均可在生产中使用提高效率 https://blog.csdn.net/viviliving/article/details/84314110

                  DATA-LINKED:共享公共对象的元数据和数据给Application PDB,在Appliation PDB中仅可查询公共对象在Application root内存储的数据,无法对其进行DML操作,也不可进行本地数据插入。

这句话整理出来几点:

1、共享公共对象的元数据和数据给Application PDB,要通过SYNC子句

2、在Appliation PDB中仅可查询公共对象在Application root内存储的数据

3、在Appliation PDB中无法对其进行DML操作,也不可进行本地数据插入

实践活动:

环境:(同METADATA-LINKED专项测试):

实例:

一、Application root 中创建DATA-LINKED表

SQL> ALTER PLUGGABLE DATABASE APPLICATION saas_sales_app BEGIN UPGRADE '2.0' to '3.0';
Done

SQL> CONNECT saas_sales_adm/manager@saas_sales_ac
Connected to Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 
Connected as saas_sales_adm@saas_sales_ac

SQL> 
SQL> CREATE TABLE countries_dlt SHARING=DATA
  2  (country_id   NUMBER,
  3   country_name VARCHAR2(20));
Table created

SQL> 
SQL> INSERT INTO countries_dlt VALUES(1, 'USA');
1 row inserted
SQL> INSERT INTO countries_dlt VALUES(44, 'UK');
1 row inserted
SQL> INSERT INTO countries_dlt VALUES(86, 'China');
1 row inserted
SQL> INSERT INTO countries_dlt VALUES(91, 'India');
1 row inserted

SQL> ALTER PLUGGABLE DATABASE APPLICATION saas_sales_app END UPGRADE TO '3.0';
Done

二、pdb中同步或插入数据查询测试

SQL> select * from countries_dlt;
select * from countries_dlt
ORA-00942: 表或视图不存在

SQL> ALTER PLUGGABLE DATABASE APPLICATION saas_sales_app SYNC;
Done

SQL> select * from countries_dlt;
select * from countries_dlt
ORA-00942: 表或视图不存在

SQL> select * from saas_sales_adm.countries_dlt;
COUNTRY_ID COUNTRY_NAME
---------- --------------------
         1 USA
        44 UK
        86 China
        91 India

SQL>  INSERT INTO countries_dlt VALUES(1, 'USA');
INSERT INTO countries_dlt VALUES(1, 'USA')
ORA-00942: 表或视图不存在

SQL>  INSERT INTO saas_sales_adm.countries_dlt VALUES(1, 'USA');
INSERT INTO saas_sales_adm.countries_dlt VALUES(1, 'USA')
ORA-65097: 对数据链接表的 DML 操作是在应用程序操作外部执行的

分析:

         有本例结合18c的【跟我学oracle18c】第十一天:Application Common Objects一节内容,发现DATA-LINKED在

pdbs内部是只读的 

          在软件应用中可以用来存储公共只读参数,共享给哥哥pdbs使用

相关错误号整理:

1、

SQL>  INSERT INTO saas_sales_adm.countries_dlt VALUES(1, 'USA');
INSERT INTO saas_sales_adm.countries_dlt VALUES(1, 'USA')
ORA-65097: 对数据链接表的 DML 操作是在应用程序操作外部执行的

原因:DATA-LINKED表禁止在pdb内操作

猜你喜欢

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