1. 程式人生 > >【跟我學oracle18c】第十八天:DATA-LINKED專項測試

【跟我學oracle18c】第十八天:DATA-LINKED專項測試

                  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/[email protected]_sales_ac
Connected to Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 
Connected as 
[email protected]
_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內操作