1
A
回答
2
你不能改變一個物化視圖的查詢,你必須刪除並重新創建它。
參見:http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_2001.htm
使用ALTER MATERIALIZED VIEW語句來修改現有 物化在一個或多個以下方面的觀點:
改變其存儲特性
更改刷新方法,模式或時間
以改變其結構,使得它是一種不同類型的物化 視圖
要啓用或禁用查詢重寫
0
正如Jeffre肯普指出的,不能更改查詢的現有的物化視圖。
但是,如果您期望的變化將在未來有必要,就可以選擇這些方法之一:
- 使用中間VIEW做所有繁重;你的MATERIALIZED VIEW然後做了一個簡單的
SELECT * FROM myView
。這允許您更改查詢 - 但是,它不允許您向物化視圖添加/刪除列或使用物化視圖的預構建表來添加/刪除列;這在邏輯上將用於保存用於更新內容的查詢的內容的TABLE分開。現在,您可以刪除MATERIALIZED VIEW,根據需要添加/刪除TABLE中的列,然後重新創建MATERIALIZED VIEW, - 使用查詢MATERIALIZED VIEW的所有代碼的同義詞;如果有必要,使用CTAS創建一個備份表,將同義詞指向該備份表,刪除並重新創建您的MATERIALIZED VIEW,將同義詞指向MATERIALIZED VIEW,然後放下備份表(這就是我們的做法)
相關問題
- 1. 修改物化視圖查詢
- 2. 實體查詢選擇TOP1
- 3. MYSQL:修改主鍵不丟棄
- 4. JPA:查詢視圖實體
- 5. 選擇查詢比視圖
- 6. Oracle TOAD和物化視圖
- 7. 丟棄選擇器的iOS
- 8. 選擇()丟棄物品
- 9. 修改實體而不跟蹤它
- 10. 實體框架查詢選擇
- 11. 實體框架嵌套選擇查詢
- 12. ManytoMany實體選擇查詢原則
- 13. 實體查詢選擇「*」錯誤
- 14. 在oracle中選擇表(或視圖),我在TOAD中找不到
- 15. SQL查詢修改/優化
- 16. 如何選擇子視圖「子」實體?
- 17. 優化實體框架的LINQ查詢(選擇1意外場)
- 18. 物化查詢從實體
- 19. 2sxc 8.5實體選擇器,改變選擇的實體
- 20. LINQ查詢選擇實體及其集合查詢
- 21. ASP.Net MVC:實體在視圖中的選擇而不使用下拉列表
- 22. ORA-00922:修改視圖時丟失或無效的選項 - Oracle
- 23. 優化選擇查詢(內選擇+組)
- 24. Cassandra實體化視圖
- 25. DROP實體化視圖
- 26. Hibernate命名查詢(選擇所有實體不出現在其他實體中)
- 27. 選擇查詢優化
- 28. 選擇最優化查詢
- 29. 優化選擇查詢
- 30. SQL查詢選擇優化
因此,我需要獲得用於該MVIEW的確切DDL並刪除舊的並重新創建它?對嗎?因此舊MVIEW中已有的數據也將被丟棄? – Rradhak 2013-02-11 03:32:56
我很確定這就是我所說的。我不確定你認爲分貝可以做什麼 - 如果你改變了查詢,數據不再是正確的。 – 2013-02-11 03:46:18
是的,我同意。如果我放棄它。我可以用相同的名稱重新創建它。我需要相同的名稱,否則我必須重命名舊名稱。 – Rradhak 2013-02-11 04:23:49