2016-08-03 54 views
0

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

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较少的记录需要插入

感谢您的帮助!

+0

没有。 Oracle不会为你工作。您应该维护自己的作业成功运行所需的信息。 –

+0

对不起,LOADED_DT也将被更新。由于此表包含数百万条记录,因此如何在每批中将数据拆分为10,000条记录? 我打算使用NUMBERID的MIN和MAX。如果我使用这个,我将会丢失一些记录,因为可能有一些NUMBERID较少的记录需要插入。 –

+1

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

回答

0

只是为了更新我通过创建一个结构化Oracle表达到了这一要求。我将所有数据放入该表并处理新创建的表中的记录。这似乎是一个更容易的选择。谢谢大家帮助 !