Oracle数据库-标准版-版本12.1.0.2.0,平台Windows 64位
我在尝试创建mview时遇到ora-12033错误,所有必要的列已包含在mview日志中。当我尝试在11g版本上做同样的事情时,它可以工作,但是12c抛出ora错误。
请帮助我解决此问题或提供可能有用的链接。
这是代码:
CREATE MATERIALIZED VIEW LOG ON contract_details
with rowid (count, contract_id) including new values;
CREATE MATERIALIZED VIEW m_contract_sum
refresh fast on commit
as
select d.contract_id as contract_id,
count(*) as count_grp,
count(d.count) as cnt_count,
sum(d.count) as sm_count
from contract_details d
group by d.contract_id;
谢谢!
答案 0 :(得分:0)
扩展统计信息可能会出现问题,扩展统计信息会自动创建以收集列组上的统计信息。 您可以通过执行以下查询来验证它:
SELECT column_name, data_default, virtual_column, hidden_column
FROM dba_tab_cols
WHERE table_name = 'CONTRACT_DETAILS' AND hidden_column = 'YES';
在这种情况下,您需要在(重新)创建实例化视图之前删除统计信息(使用dbms_stats.drop_extended_stats
)。
例如
BEGIN
dbms_stats.drop_extended_stats('master', 'contract_details', '(x, y)');
END;
/
之后,您可能想通过使用
再次收集统计信息BEGIN
dbms_stats.create_extended_stats('master', 'contract_details', '(x, y)')
END;
/