设为首页 收藏本站
查看: 471|回复: 0

[经验分享] ORACLE工程到SQL SERVER(2008)工程的转移

[复制链接]

尚未签到

发表于 2016-8-7 06:56:56 | 显示全部楼层 |阅读模式
  这几天由于项目要求,需要把一个用oracle数据库的工程的数据转移到sql server(2008)上,经过几天的摸索研究,终于将整个工程及数据基本移植成功。整个项目的移植主要分两个部分:数据库移植及工程中代码的修改。
  数据库移植:
  数据库方面的移植由于sql server 2008的 “导入导出数据”工具就变得简单多了,我们可以利用它实现数据库表具体字段及数据库表数据的移植。不过在移植过程中,还是有些特殊字段处理起来会出现问题:
  时间字段:在oracle工程里,有个date类型的字段,插入数据的时候是标准的“yyyy-MM-dd hh:mm:ss”格式,程序也是按此格式处理的。在移植过程中,工具会默认将其设成date格式的。由于该格式精确到天,因此不符合我们的要求,还要自己手工改成smalldatetime(虽然这个类型精确到分,但是输出的格式也是我们要求的一致)。当然,具体的需求要具体修改,涉及到时间字段的话都要注意下,在生成过程中可通过编辑mapping来修改要生成sql server表的sql。
  大数据字段:oracle有blob和clob两个可存储如图片之类的大数据字段,在移植过程中,虽然数据结构可以正常生成,但是拷贝数据的时候就会出现问题。因此建议遇到此种字段,还是手动拷贝数据比较好。
  自增长形式:oracle的自增长是通过sequence实现的,而sql server则是通过id自增长的方式。因此,每个表拷贝过来后,都要设置其ID的标示种子和标示增量,一般都设置为1即可。
  代码修改:
  数据库移植过来后,相应地代码也做对应的修改。由于我的工程师通过hibernate连接数据库的,因此修改的地方基本都在配置文件里。
  首先要修改org.hibernate.dialect,将其设置为sql server 支持的配置(org.hibernate.dialect.SQLServerDialect)。其次,修改数据库的连接配置,同时新增sqlserver2008.jar的jar包。接着,在每个实体类对应的hibernate配置文件里,修改id的generator节点,将原来的<generator class="sequence">换成<generator class="identity" />。不过,如果原本是通过hibernate工具生成的配置文件,那么在生成的过程中改下参数就可以了。最后,工程中有的sql涉及到关键字或者关键语法的,这些也都要一一改正过来(如rownum改成top等)。
  至此,整个工程基本移植过来了,也能正常运行了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-254088-1-1.html 上篇帖子: SQL Server 和Oracle给字符串补0 下篇帖子: 编码,JSP编码,Oracle编码,开发中编码问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表