PL SQL数据加载问题

时间:2016-08-03 00:09:35

标签: sql database oracle plsql

我有一个奇怪的要求将数据从非结构化表加载到结构化表中。非结构化表格如下所示。

NUMBERID | MODEL| NAME | VALUE | CREATED_DT | LOADED_DT
1000     | BOE | AGT  | 300   | 02-AUG-2016| 02-AUG-2016
1001     | AIR | ACT  | 400   | 01-AUG-2016| 01-AUG-2016
1002     | EMB | ADT  | 500   | 02-AUG-2016| 01-AUG-2016
1004     | REL | GTR  | 140   | 01-AUG-2016| 01-AUG-2016
1005     | SIM | HJT  | 140   | 01-JUL-2016| 28-JUL-2016

这是表格的样子,它有数百万条记录。现在我需要将数据加载到不同的结构化表中。这是真正的交易。这些数据每天都通过ETL工作刷新。我需要加载两天前的数据。因此,我使用sysdate - 2查询CREATED_DT以获取数据连接(MAX(NUMBERID)到MIN(NUMBERID))以获取所有记录。有时,表中不会创建新记录,而是仅在4天后更新VALUE,我们需要更新新系统中的新值。

那么,如何在不与基表进行比较的情况下识别该值? 此外,如果LOADED_DT也将更新。由于此表包含数百万条记录,如何在每批中将数据拆分为10,000条记录?

我计划使用NUMBERID的MIN和MAX。如果我使用它,我将丢失一些记录,因为可能有一些需要插入的NUMBERID较少的记录

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

更新我通过创建一个结构化的Oracle表来实现此要求。我将所有数据放入该表并处理新创建的表中的记录。这似乎是一个更容易的选择。谢谢你的帮助!