从SQLSERVER向ORACLE导数据

a_king 2011-09-08 10:26:09
最近在做项目的时候需要每天将一个SQLSERVER表中数据导入到ORACLE的一张表中,这个程序是每天临晨2点执行的.首先说明一下,SQLSERVER表中的数据有一万多条,而且每天都有增加.由于两张表分属不同的数据库,所以就用JAVA写了方法,先将SQLSERVER表中数据读出来写如到一个LIST中,然后再通过FOR循环遍历这个LIST,在FOR循环中执行ORACLE的INSERT语句,将数据写入到ORACLE的一张表中.虽然数据量不是特别大,但是执行了一万多遍这个循环,最后数据没有导完就内存溢出了.估计是这个循环太大了,不知道有没有好的方法.
...全文
69 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuhaiyang5300 2011-09-15
  • 打赏
  • 举报
回复
不同数据库之间用etl来抽取处理。
新丁11111 2011-09-15
  • 打赏
  • 举报
回复
我觉得用sql server的DTS直接导入ORACLE就可以了,然后做个任务定时执行
liuhaiyang5300 2011-09-14
  • 打赏
  • 举报
回复
程序循环中间commit一下就没问题了,每1000条commit一次就ok。
内存溢出可能是你java的代码有问题,看是否是对象建立的太多了?
hao1hao2hao3 2011-09-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 a_king 的回复:]
最近在做项目的时候需要每天将一个SQLSERVER表中数据导入到ORACLE的一张表中,这个程序是每天临晨2点执行的.首先说明一下,SQLSERVER表中的数据有一万多条,而且每天都有增加.由于两张表分属不同的数据库,所以就用JAVA写了方法,先将SQLSERVER表中数据读出来写如到一个LIST中,然后再通过FOR循环遍历这个LIST,在FOR循环中执行ORACLE的INSERT语句,将数据写入……
[/Quote]


如果要从程序中处理,可以考虑在SQL Server数据库的表中增加创建日期和修改日期,当天创建的和当天修改的数据才需要同步到Oracle中,那么没有改变的数据不需要处理(当然前提是运行这样的程序前先将所有的数据导入到Oracle,Sql Server也自带这样的工具的。)
wangboforce 2011-09-09
  • 打赏
  • 举报
回复
Alessandro_ 2011-09-09
  • 打赏
  • 举报
回复
看等其他方法。
inthirties 2011-09-09
  • 打赏
  • 举报
回复
sqlserver好像提供了这样的迁移工具
ruihuahan 2011-09-09
  • 打赏
  • 举报
回复
sqlserver 的 transformation 工具很好用的。
huangdh12 2011-09-08
  • 打赏
  • 举报
回复
可以分页从sqlserver中取出数据(肯定会有一定规则的),然后进行插入oracle的操作。

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧