我有一个复杂的跨模式查询,我想在 Oracle 19c 中将其创建为物化视图(尽管该数据库已从 Oracle 的众多历史版本中移植过来)。这包括将一个子查询连接到三个总共模式的 5 个附加表,然后联合到针对 3 个不同模式的查询的另一个副本。创建视图的帐户具有 DBA 和 CONNECT 角色,并已被授予GLOBAL QUERY REWRITE
、UNLIMITED TABLESPACE
、CREATE PROCEDURE
、CREATE MATERIALIZED VIEW
和CREATE TABLE
系统权限。它还对查询中的所有表具有显式 SELECT 权限。
我可以毫无问题地运行查询本身。但是,当我为物化视图添加设置时:
CREATE MATERIALIZED VIEW <account_schema>.<materialized_view_name>
BUILD IMMEDIATE
REFRESH FORCE
ON COMMIT
AS
<SELECT...>
我得到 ORA-01031,或“权限不足”。我错过了什么?有没有办法查询更详细的遗漏报告?它指向查询中的特定位置(最后一个连接中的表),但我看不出它与其他表之间有任何区别。