快速版:我有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)
超级对不起,这样的长的职位。