Oracle 事务查询数据库管理

Oracle 事务查询数据库管理,oracle,mongodb,transactions,etl,talend,Oracle,Mongodb,Transactions,Etl,Talend,有人能给我一些关于在关系数据库中管理事务查询的建议吗。具体地说,我有一个Oracle数据库,有10000条记录(1TB)。在作业ETL(Talend)的上下文中,我必须从Oracle数据库获取所有这些数据,处理它们并将它们插入NoSQL数据库(MongoDB) 假设由于某些技术原因(网络…),我的服务器在插入第9999条记录后挂起 问题是:如何在Oracle数据库中继续保持第100000条记录,但不删除以前的所有结果 谢谢 选择按某列排序的源表,最好是唯一的一列 select ... from

有人能给我一些关于在关系数据库中管理事务查询的建议吗。具体地说,我有一个Oracle数据库,有10000条记录(1TB)。在作业ETL(Talend)的上下文中,我必须从Oracle数据库获取所有这些数据,处理它们并将它们插入NoSQL数据库(MongoDB)

假设由于某些技术原因(网络…),我的服务器在插入第9999条记录后挂起

问题是:如何在Oracle数据库中继续保持第100000条记录,但不删除以前的所有结果


谢谢

选择按某列排序的源表,最好是唯一的一列

select ... from SOURCE order by ID;
如果列是唯一的,则在重新启动时简单检查目标数据库中的最高值,并使用高于此值的值(>)重新启动

select ... from SOURCE where ID > {max ID from TARGET} order by ID;

如果中的列不唯一,则必须使用高于或等于此值(>=)的值重新启动,并另外删除可能通过这种方式引入的重复记录

在源表中添加一个“已处理”标志/列,并设置为Y或1或其他值,以指示它作为事务的一部分进行处理。在ETL查询中添加约束以排除已处理的记录。感谢OldProgrammer,但在我的select中至少有4个内部联接,在这种情况下,我无法添加“已处理”标志!好的,既然你不应该具体的表格细节,就不能提供更具体的答案。