快速版:我有4個表(TableA,TableB,TableC,TableD)在設計上是相同的。 TableC是一個完整的歷史表A & B.我想定期更新TableC與來自表A & B的新數據。表D包含最近從A/B轉移到C的行的副本。我需要從表A/B比TableD中的記錄更新。 有什麼建議嗎?創建流的歷史記錄_030100.wwv_flow_activity_log
長的版本:我試圖努力ETL(提取,轉換和加載)從幾個不同的表到一些其他表更快一些信息,更容易報告...有點像一個數據倉庫,但在同一個數據庫中(不要問)。
基本上我們想記錄和報告系統性能。 ORACLE有日誌,這表flows_030100.wwv_flow_activity_log1 $和$ flows_030100.wwv_flow_activity_log2 - 我相信,這些表都充滿每兩週或東西...
我創建了一個表中清除:
CREATE TABLE dw_log_hist AS
SELECT * FROM flows_030100.wwv_flow_activity_log WHERE 1=0
並填充當前信息:
INSERT INTO dw_log_hist
SELECT *
FROM flows_030100.wwv_flow_activity_log1$
INSERT INTO dw_log_hist
SELECT *
FROM flows_030100.wwv_flow_activity_log2$
然而,這些日誌文件會在APEX屏幕中記錄每次點擊。因此,它們不斷增長。
我想定期更新我的DW_Log_Hist表只有新的信息(我完全知道我的歷史表會長得可笑的大小,但我會在稍後處理)。
不幸的是,這些表沒有主鍵,所以我不得不創建另一個表來存儲標記的記錄,會告訴我我現在是複製了-_-
CREATE TABLE dw_log_temp AS
SELECT * FROM flows_030100.wwv_flow_activity_log
WHERE time_stamp = (SELECT MAX (time_stamp)
FROM flows_030100.wwv_flow_activity_log2$)
THEN畢竟最新的日誌的華夫餅乾...... 這就是我需要您的幫助:
有誰知道日誌表中的一個(wwv_flow_activity_log1 $或wwv_flow_activity_log2 $)是否總是有最新的日誌?是log1 $填滿的情況,log2 $ fill然後log1 $被log2 $覆蓋,這樣log2 $總是有最新的數據?還是他們都填滿了,然後再填補?
任何人都可以建議如何使用DW_Log_Temp標記記錄填充DW_Log_Hist表嗎?
概念上,它會是這樣的:
插入到一切dw_log_hist從activity_log1 $和activity_log2 $其中TIME-STAMP是>(在dw_log_temp記錄的TIME-STAMP)
超級對不起,這樣的長的職位。