一个数据库操作的有关问题

请教大家一个数据库操作的问题!
需求是这样的:
1.两个数据库,一个是access,另一个是oracle。
2.access里某个表数据会不断增加。
3.需要每隔5分钟,把access里的数据插入到oracle中。


我现在是建了两个事务,两个数据源。自己的想法是,直接写sql语句。

select * from t using access;

insert into t using oracle;

两个问题请教各位:
1.这种方式效率如何?
2.select * from t using access;这个会读出多条数据。这里要用游标。但是如何把这个游标里的查询结果集再insert into 到oracle中?


------解决方案--------------------
1.这种方式效率如何?
答:效率比较差,建议有access数据库增加个字段,记录增加或修改的时间,然后根据这个时间去取上次导入之后的数据,然后再插到oracle数据库中,这样效率比较高,对数据库的压力比较小,如果你的t表数据比较少的话(1000行以下),你的方法也可行


2.select * from t using access;这个会读出多条数据。这里要用游标。但是如何把这个游标里的查询结果集再insert into 到oracle中?
答:建议不要用游标,效率比较差,建议用数据窗口来实现,效率比较高,建两个数据窗口,一个是基于access取数据用的,一个基于oracle保存数据用的,把数据从access数据窗口中插到oracle的数据窗口中,如果结构一致,可以考虑批量导入
------解决方案--------------------
有游标肯定很慢,比如,弄两个dw,一个连的access,一个连的是oracle,两个dw间移动数据,然后,再提交dw2,这样就完成insert啦。
------解决方案--------------------
建议了解一下数据管道
或用datastore批量传输
------解决方案--------------------
建了两个事务,两个数据源
弄两个dw,一个连的access,一个连的是oracle
同一个w之间的不同dw可以用rowscopy或rowsmove进行批量导入
最后update你insert的表
------解决方案--------------------
建立数据管道时选择sqlserver,可以写条件

两个数据库不可以关联查询,如果都是oracle的话,可以用数据链路来实现

你需要逐个查找来实现,或者增加一个数据创建或修改的时间,然后根据时间导入到oracle中
------解决方案--------------------
制作dw的时候,加上条件就行啦