天天看点

物化视图导出导入可能导致物化视图日志的失效

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