锁定老帖子 主题:另类的异构系统数据交互
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-10-15
这学期大四,应聘上了深圳一家软件公司实习。现在上班也有一个半星期了吧,上个星期主要是熟悉公司现有项目的业务。昨天开始分配给我一项任务,就是做两个系统的数据交互,一开始还以为要用到webservice之类的东西,所以赶紧到网上查了一堆的资料。后来老大告诉我另外一个项目(数据提供源)的程序不能动,只限于数据库上的操作(源MS SERVER,目的ORACLE10G),那边服务器上提供FTP服务,所以刚开始考虑通过MS SERVER定时导出xml格式的数据,然后通过ftp把数据读取过来,然ORACLE的xml解析函数解析数据然后导入数据库。后来发现双方导入导出xml格式数据非常的麻烦,而且好象ORACLE10g的xml.parse函数有bug,所以只能考虑别的方式。 今天决定试一试让MS SERVER通过BCP工具导出oracle格式的insert脚本,然后放到ftp服务器目录,通过sun.net.ftp.*包的工具把服务器上的脚本文件剪切过来,导入到oracle数据库中去。 整个过程需要注意几个方面: 1、MS SERVER的定时作业任务(即导出脚本)的时间需要控制在spring定时器的前面。 2、因为涉及到多个表,所以父表的数据要先导出,再导子表数据,而且要设置相应的标志,0没有操作,1准备导出,2已经导出,首先要把父表为0的标志改为1,然后修改相应的子表标志为1,导出数据后改为2。 查询顺序:select parent ,select children 如果不设置1准备导出这个动作的话,那么读完parent表后,可能会有同时插入parent 、children表的操作,而parent 表已经导出,children表导出的脚本可能有跟新parent 数据关联,其脚本在导入到oracle的时候将报错。 整个过程主要有三个: 1、MS SERVER任务器定时调用存储过程导出insert脚本 2、Spring定时任务器定时调用sun.net.ftp.*进行脚本读取操作 3、Spring将脚本导入oracle执行 今天实验成功,不知道实际运行效果如何,期待中! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-10-16
export -> ftp -> imp
|
|
返回顶楼 | |
浏览 2064 次