天天看點

物化視圖導出導入可能導緻物化視圖日志的失效

SQL> create user yang identified by yang;

使用者已建立。

已用時間:  00: 00: 00.10

SQL> grant resource,connect to yang;

授權成功。

已用時間:  00: 00: 00.01

SQL> grant create meterialized view to yang;

grant create meterialized view to yang

      *

第 1 行出現錯誤:

ORA-00990: 權限缺失或無效

SQL> show user

USER 為 "SYS"

SQL> grant create materialized view to yang;

已用時間:  00: 00: 00.00

SQL> create user b identified by b;

SQL> grant create materialized view to b;

已用時間:  00: 00: 00.04

SQL> conn yang/yang

已連接配接。

SQL> select * from tab;

未標明行

已用時間:  00: 00: 00.07

SQL> create table t(id number primary key);

表已建立。

已用時間:  00: 00: 00.21

SQL> insert into t values(1);

已建立 1 行。

SQL> col change_vector$$ format a40

SQL> select * from mlog$_t;

select * from mlog$_t

              *

ORA-00942: 表或視圖不存在

SQL> select * from sys.mlog$_t;

select * from sys.mlog$_t

                  *

SQL> rollback;

回退已完成。

SQL> create materialized view log on t;

實體化視圖日志已建立。

已用時間:  00: 00: 00.39

SQL> create materialized view mv_t as select * from t;

實體化視圖已建立。

已用時間:  00: 00: 01.21

        ID SNAPTIME$$     D O CHANGE_VECTOR$$                                  

---------- -------------- - - ----------------------------------------         

         1 01-1月 -00     I N FE                                               

SQL> commit;

送出完成。

SQL> exec dbms_mview.refresh('mv_t');

PL/SQL 過程已成功完成。

已用時間:  00: 00: 00.79

SQL> select * from mv_t;

        ID                                                                     

----------                                                                     

         1                                                                     

SQL> grant resource,connect to b;

grant resource,connect to b

*

ORA-01031: 權限不足

SQL> conn system/yang as sysdba

SQL> insert into t values (2);

         2 01-1月 -00     I N FE                                               

SQL> conn b/b

TNAME                          TABTYPE  CLUSTERID                              

------------------------------ ------- ----------                              

MLOG$_T                        TABLE                                           

MV_T                           TABLE                                           

RUPD$_T                        TABLE                                           

T                              TABLE                                           

已用時間:  00: 00: 00.03

SQL> select * from t;

         2                                                                     

BEGIN dbms_mview.refresh('mv_t'); END;

ORA-12018: 在建立 "B"."MV_T" 的代碼時出現以下錯誤

ORA-01741: 非法的零長度辨別符

ORA-06512: 在 "SYS.DBMS_SNAPSHOT", line 2537

ORA-06512: 在 "SYS.DBMS_SNAPSHOT", line 2743

ORA-06512: 在 "SYS.DBMS_SNAPSHOT", line 2712

ORA-06512: 在 line 1

已用時間:  00: 00: 00.57

已用時間:  00: 00: 00.42