我正在尝试使用预构建的视图在Oracle中创建物化视图。
create materialized view bfb_rpt_sch01.mvw_base_sales
as select * from bfb_rpt_sch01.vw_base_sales;
此命令不会执行并挂起。我想也许这与视图没有正确编写有关。所以我在视图上执行了以下查询。
select count(*) from bfb_rpt_sch01.vw_base_sales
此查询大约需要6分钟才能执行,并返回270万。这告诉我观点不是问题,但我可能是错的。
答案 0 :(得分:1)
我设法解决了我的问题。我的(CREATE MATERIALIZED VIEW AS)与我的(CREATE TABLE AS)相比使用了不同的解释。如果我的代码包含以下代码行,它将完全正常运行(CREATE TABLE AS),但它会在使用(CREATE MATERIALIZED VIEW AS)失败之前继续挂起48小时。
WHERE a.column_name NOT IN (SELECT b.column_name FROM B) --culprit
我使用以下内容更改了代码,现在工作正常。
WHERE NOT EXISTS (SELECT NULL FROM B WHERE a.column_name = b.column_name) --works
我不确定为什么会这样,也许是错误?关于ORACLE打电话我还不够。