【跟我學oracle18c】第十八天:DATA-LINKED專項測試
阿新 • • 發佈:2018-11-21
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內操作