簡體   English   中英

使用 Oracle 的物化視圖

[英]Materialized view with Oracle

我在腳本中有以下行,我不明白“使用”部分的用途。
我在谷歌上找不到任何東西。 有人熟悉嗎?
非常感謝 !!

CREATE MATERIALIZED VIEW "PVTRNDM"."DM_MVW_DAILY_CAL" 
 USING ("DM_MVW_DAILY_CAL", 
        (8, 'PLANVP.XXXX.INT', 1, 0, 0, "PVTRN", "DAILY_CAL", '2009-10-15 16:12:25', 8, 45073, '2009-10-15 16:12:25', '', 1, '0E', 6548400, 0, NULL), 
        2101313, 8, ('1950-01-01 12:00:00', 111, 0, 0, 6548400, 0, 2054, 2, NULL, NULL)) 
 REFRESH FORCE AS 
 select day_date, cal , sum(NVL(daily_du, 0)) AS daily_du FROM PVPROD.daily_cal GROUP BY day_date, cal ;

嗯,這很有趣。 我拿了代碼並將其插入蟾蜍並進行了一些更改:

創建物化視圖 mv_jfhtesting USING ("mv_jfhtesting",("hi","by"))
REFRESH FORCE AS 選擇 "this", "that" from dual

這導致:ORA-12037 - 未知的導出格式,當我查找時:

原因:嘗試導入由未知導出版本導出的物化視圖(例如,來自比導入站點更新的版本)

操作:使用導入站點已知的導出版本重新導出文件。

所以,我的猜測是這個子句從另一個 MV 導入數據。 (甚至它本身,也許?)對不起,我沒有時間玩這個了

奇怪的。 您是否在數據庫中有該對象,如果有,DBMS_METADATA.GET_DDL 為您提供了什么。 如果該格式的 SQL 不存在,我懷疑有人導出了模式並將 SQL 從 DUMP 文件中復制出來。

我想我已經想通了(或者至少有一個建議)。 我從具有 REFRESH ON DEMAND 物化視圖的用戶導出,然后嘗試將其導入具有 CREATE TABLE 但沒有 CREATE MATERIALIZED VIEW 權限的用戶。

它創建了一個具有該名稱的表,但在物化視圖中出錯。 我的猜測是,在進行導出時,它將 MV 中的數據導出為表格。 CREATE MATERIALIZED VIEW 的這種奇怪的語法將該表變成了 MV。 我猜這些日期與上次在源數據庫上刷新 MV 的時間有關(如果有可用於下一次刷新的 MV 日志,這可能是相關的)。

USING 是某種 JOIN。

使用“USING”進行連接

他們是一個USING INDEX子句

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM