我在一個由數據庫鏈接創建的服務器上有一個物化視圖。 在Mview上有一項工作正在運行。 (使用前面的dbms_refresh.make創建)。實現中的更改
現在我在原表中創建了3個新字段。 我的查詢是。
1)我是否需要再次刪除並創建Mview,如果是的話,是否需要再次在主服務器上創建Mview日誌 2)在Mview上運行的作業會發生什麼,我需要創建它嗎?
也有在Mview上創建的視圖,所以 - 如果我運行創建或替換視圖查詢,它會產生任何問題?
請指導。
謝謝!
我在一個由數據庫鏈接創建的服務器上有一個物化視圖。 在Mview上有一項工作正在運行。 (使用前面的dbms_refresh.make創建)。實現中的更改
現在我在原表中創建了3個新字段。 我的查詢是。
1)我是否需要再次刪除並創建Mview,如果是的話,是否需要再次在主服務器上創建Mview日誌 2)在Mview上運行的作業會發生什麼,我需要創建它嗎?
也有在Mview上創建的視圖,所以 - 如果我運行創建或替換視圖查詢,它會產生任何問題?
請指導。
謝謝!
如果您需要在物化視圖中包含新列,那麼您需要重新創建物化視圖。您必須顯式刪除視圖,因爲沒有「創建或替換實例化視圖」語句。
DROP MATERIALIZED VIEW blah;
CREATE MATERIALIZED VIEW blah...
刪除/重新創建物化視圖應重新創建刷新作業。不是100%確定的,但您應該重新創建日誌。
而且,如果你並不需要在您的視圖中的新列,你真的不需要做任何事情......
刪除/創建物化視圖後,您應該重新編譯其他視圖,因爲它們可能已失效。
您可以檢查是否與
select *
from user_objects
where status = 'INVALID';
重新編譯發生視圖可以與
alter view the_view compile;
或
exec dbms_utility.compile_schema(user);
這樣做只是重新編譯架構中的一切。這樣做的時候一定不要有跑步工作!
是否確定「創建或替換」適用於物化視圖?回覆:DCookie的回答(和我的經驗)「創建或替換」會在物化視圖上返回Oracle錯誤。 – Andrew 2011-06-29 20:42:53
你是對的,物化視圖不能被替換。我編輯了我的答案。 – 2011-06-30 08:28:46