这几天由于项目要求,需要把一个用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等)。
至此,整个工程基本移植过来了,也能正常运行了。
分享到:
相关推荐
它支持多种数据库连接类型,不仅限于Oracle数据库,还包括SQL Server、MySQL、DB2等。通过其直观的用户界面,用户可以方便地执行SQL语句,管理数据库对象,以及进行数据迁移和数据同步。 2. 版本信息: 版本号20.2...
通过SQL Server的教学,学生能够加强对数据库运作原理的理解和SQL语言的应用,同时也为将来学习更为复杂的Oracle数据库管理系统打下坚实基础。 文章中提到的课程总体设计旨在培养学生具备数据库管理员(DBA)的基本...
在某些特定的角色,如高级工程师,可能还需要对特定数据库系统(如SQL Server)有深入理解和实践经验,包括但不限于高可用性方案的构建,如SQL Server的主从复制和故障转移集群。同时,对数据库内部原理的理解,如...
这个新的迁移实用程序提供了向导和易于使用的五步界面,这些有助于快速地将现有的 ORACLE、Sybase 和 Microsoft SQL Server 数据库对象转换到 DB2 通用数据库。MTK 向数据库管理员 (DBA) 和应用程序程序员提供了使...
考生需要熟悉不同的数据库管理系统,如Oracle、MySQL、SQL Server等,以及它们的特性和优缺点。此外,数据库性能调优,如查询优化、内存管理以及磁盘I/O优化也是重要的考察点。 下午的试题通常更偏向于实践操作和...
随着业务逻辑和应用逻辑越来越多地转移到 Oracle Server 中,PL/SQL 开发成为项目开发的关键部分之一。PL/SQL Developer 软件注重易用性、代码质量和生产力提升,以充分利用 Oracle 应用程序开发的优势。 #### 二、...
ASP.NET通常使用ADO.NET,这是一个面向对象的数据库访问组件,它允许开发者直接与各种数据库系统进行交互,如SQL Server、Oracle等。而ROR则采用ActiveRecord模式,它是MVC(Model-View-Controller)架构的一部分,...
Navicat 是一款强大的多数据库管理工具,支持 MySQL、Oracle、PostgreSQL、SQLite、SQL Server、MariaDB、MongoDB 和 Redis 等多种数据库类型,同时也支持诸如阿里云、腾讯云等云数据库服务。Navicat 的设计兼顾了...
- 数据库:Oracle、Informix、SQL Server等的特性及操作。 - 英语能力:可能需要解答技术问题或进行基本对话。 面试时,深入理解和全面掌握这些概念至关重要。对于不熟悉的话题,诚实承认并表达愿意学习的态度也...
网络工程师的技术分支主要包括网络互连设备(如思科和华为的设备)、局域网和广域网技术、服务器配置管理(Windows/Linux/Unix)、数据库管理(SQL Server/Oracle)以及网络安全与管理。通信介质包括铜线、电线、...
4. **数据库软件对比**:常见的数据库管理系统如MySQL、Oracle、SQL Server等各有优势,选择时需综合考量。 ##### 三、数据库设计原则 1. **规范化设计**:通过消除数据冗余来提高数据完整性。 2. **数据库设计...
本地数据库是指安装在用户计算机上的数据库管理系统,如MySQL、SQL Server或Oracle等,它们负责存储和管理数据,为应用程序提供数据服务。在这个系统中,数据库已经预先配置好,用户无需额外设置,可以直接使用。 ...
Navicat Premium 15 是一款强大的数据库管理工具,它集成了多种数据库管理系统,包括 MySQL、MariaDB、Oracle、SQL Server、PostgreSQL 和其他多种数据库类型。这款软件为数据库管理员和开发人员提供了一站式的解决...
Navicat Premium是一款强大的数据库管理工具,专为多种数据库管理系统设计,包括MySQL、MariaDB、Oracle、SQL Server、PostgreSQL等。它集成了多种数据库管理功能,如数据查询、数据同步、数据备份、数据导入导出等...
Navicat支持多种数据库管理系统,包括MySQL、MariaDB、Oracle、SQL Server等,这使得用户可以跨平台、跨数据库进行数据管理和维护。 在Navicat中,你可以进行以下主要操作: 1. 数据库连接:通过输入服务器地址、...
* 数据库:掌握关系数据库的原理,熟练使用Oracle、SQL Server进行软件系统开发 * 服务器:掌握Tomcat服务器,了解Jboss、WebLogic服务器 * 软件设计工具:掌握PD软件设计工具,了解UML、Rose设计工具 * 算法:懂...
Navicat Premium是一款强大的数据库管理工具,尤其在Mac平台上,它为用户提供了高效且便捷的方式来连接和管理多种数据库系统,包括MySQL、MariaDB、Oracle、SQL Server等。这个"mac版 Navicat+Premium_12.1.6_x...
首先,学习Java Web的基础阶段主要包括Java Standard Edition (JavaSE)、Oracle数据库(SQL和PL/SQL)以及JDBC。JavaSE是Java编程的基础,包括面向对象的编程概念、类、接口、异常处理等。Oracle是广泛使用的数据库...
这个软件支持多种数据库平台,如Oracle、SQL Server、MySQL等,提供了一个直观的图形界面来可视化数据库模型。 在描述中提到的操作步骤是激活Toad Data Modeler 3的过程。首先,你需要解压缩提供的文件,这通常通过...