您无法看到使用 all_mview_comments 在 MVIEW(另一个架构)上创建的 cmets,因为它仅显示您拥有的 MVIEWS。
oracle documents 中明确提到如下:
ALL_MVIEW_COMMENTS 在物化视图上显示 cmets
当前用户可以访问。
让我举例说明:
创建MVIEW 并对用户tejash 的MVIEW 发表评论:
C:\Users\Tejash Hingu>sqlplus tejash
SQL*Plus: Release 12.2.0.1.0 Production on Fri Nov 15 16:14:19 2019
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Enter password:
Last Successful login time: Fri Nov 15 2019 13:04:48 +05:30
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> CREATE MATERIALIZED VIEW MVIEW_LUKAS
2 BUILD IMMEDIATE
3 REFRESH
4 FORCE
5 ON DEMAND
6 AS
7 SELECT
8 *
9 FROM
10 EMPLOYEES;
Materialized view created.
SQL> COMMENT ON MATERIALIZED VIEW MVIEW_LUKAS IS 'Here is your demo.';
Comment created.
检查来自 tejash 用户的 ALL_MVIEWS 和 ALL_MVIEW_COMMENTS 表中的数据
SQL> SELECT OWNER, MVIEW_NAME
2 FROM ALL_MVIEWS;
OWNER MVIEW_NAME
------ ------------
TEJASH MVIEW_LUKAS
SQL> SELECT * FROM ALL_MVIEW_COMMENTS;
OWNER MVIEW_NAME COMMENTS
-------- ------------ --------------------
TEJASH MVIEW_LUKAS Here is your demo.
看!!! ALL_MVIEW_COMMENTS 包含来自相同架构的数据。
授予用户T (GRANT SELECT ANY TABLE TO T;)
C:\Users\Tejash Hingu>sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Fri Nov 15 16:18:02 2019
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> GRANT SELECT ANY TABLE TO T;
Grant succeeded.
SQL>
现在,正在检查来自 T 用户的 ALL_MVIEWS 和 ALL_MVIEW_COMMENTS 表中的数据
C:\Users\Tejash Hingu>sqlplus T
SQL*Plus: Release 12.2.0.1.0 Production on Fri Nov 15 16:18:24 2019
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Enter password:
Last Successful login time: Fri Nov 15 2019 16:09:04 +05:30
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> SELECT OWNER, MVIEW_NAME
2 FROM ALL_MVIEWS;
OWNER MVIEW_NAME
-------- ------------
TEJASH MVIEW_LUKAS
SQL> SELECT * FROM ALL_MVIEW_COMMENTS;
no rows selected
SQL>
看!!! ALL_MVIEW_COMMENTS 不包含来自不同架构的任何数据。
希望!!现在很清楚了。
干杯!!