负责的项目要迁移到Sybase,本身工期就紧,而数据库迁移的事情谁都不提。公司的DBA即没有Sybase的经验,又没有时间搭理我们。手下几个兄弟都在忙着赶工,于是决定自己干,NND!CyberDs.
项目原有的架构中对数据库的访问是用Hibernate对JDBC进行了封装。所以程序方面需要处理一下问题:
1. Hibernate映射文件(.hbm.xml)
2. 建表SQL CyberDs.
3. 代码和原始数据插入脚本
首先说映射文件,最初是数据类型这个不难只是要多加注意,下面给出用到的对应关系表
Oracle数据类型(不分大小写) | Sybase数据类型(均为小写) |
Char | Char |
Varchar2 CyberDs. | Varchar |
Number(m,n) | Numeric(m,n) |
Date | Datetime |
Timestamp(6) | Datetime CyberDs. |
Integer | Int |
另外Oracle的主键是依赖sequence的,Sybase跟mySQL一样是依赖自增列做主键的。所以把映射文件中id.class属性改成native(后面有关sequence的配置可以不改,这样就可以适用与所有数据库了)。CyberDs.
建表SQL是从映射文件由程序生成的,把映射文件改好后,建表SQL就有了,但这里注意需要人工在最后一句drop table语句后和文件末尾增加go命令,和SQL99中Commit一个效果。这里注意:DDL语句在Oracle中是自动提交的,但是在Sybase中是存在在一个事务里面。
原始数据脚本的修改更让人感觉可笑,Sybase是用回车作为SQL的结尾,而Oracle是’;’,所以原始数据脚本中出现回车断行的统统都要改成1行,谢天谢地,还有正则表达式帮忙,一个替换全部搞定(也许有更好的办法,偶也是刚刚接触Sybase,所以如果有还望不吝赐教)。另外就是Sybase不支持从字符串类型到数字类型的隐式转换(愤怒,简直笨死了)。
大体的思路就是如上,由于我们是开发,所以数据库配置管理、调优什么的统统不管,能玩就行。下面我想说说我在今天一天的痛苦经历中总结的经验和遇到的问题:
1. IDENTITY_INSERT问题,如果您用M$的产品,那么可以跳过这条看后面去了。Sybase默认对identity的字段是不允许insert和update的,所以需要设置IDENTITY_INSERT选项,这个选择虽说是针对某个表设置的,但如果你对表A打开设置后,你就不能再对表B设置它了,这点要切记。在M$的文档帮助下(就是微软的文档,这里不得不感叹微软文档写得好啊。PS:Sybase和M$数据库产品都是使用一样的SQL语言叫Transact-SQL),终于解决此问题,下面给出SQL样本: CyberDs.
SET IDENTITY_INSERT table_name ON
Insert into table_name values ……
Update table_name set ……CyberDs.
SET IDENTITY_INSERT dbo.Tool OFF
2. 中文字符集的问题,测试表结构和数据都准备好了,然后兴致冲冲的启动Tomcat,发现从数据库中读出的中文都是乱码,那个叫汗。最后,还要感谢万能的互联网,感谢无私的汪涛,具体解决方案,看这里。当然,在这里我也做了一些扩展,自己制作了cp936的nocase排序,解决了Sybase对表名、列名大小写的区分,呵呵,具体方法?原谅我卖个官子,万能的互联网吧,很简单的:)CyberDs.
使用Sybase开发要注意的几个问题:
1. 虽然Sybase对DML语句不区分大小写,但是对数据类型是区分大小写的,而且是只认小写。CyberDs.
2. Sybase和Oracle差不多都是按数据库、用户管理表、数据、存储过程和各种用户对象的,但由于其提供的用户角色实在太少,而且很不方便,所以建议一个用户单独建立一个数据库,并为设置其为该数据库的owner,这样在开发过程中能省去不少麻烦。
3. 分配足够的数据库空间,本身开发数据库不会像生产数据库那样硕大无比。目前还没有弄清楚数据库空间自增如何配置,这点确实没有oracle方便,但是一旦数据库满了,就把所有事情都阻塞了,但是只是给出警告说日志段空间接近不足,某些事务可能被阻塞。
4. 重视自动化测试,一旦数据库移植完成,立刻跑测试,能发现很多问题。CyberDs.
最后,刚刚接触Sybase,欢迎大家提出意见,也希望有机会多多交流,共同进步。CyberDs.
((本文属原创作品,如需转载,必须标明作者Ds.3783和出处链接)
相关推荐
### Oracle向Sybase ASE迁移指南 #### 迁移过程概览 本文档旨在提供一个详细的指南,帮助读者理解从Oracle数据库迁移到Sybase ASE(Adaptive Server Enterprise)的过程和技术细节。迁移过程通常包括多个阶段:...
### Oracle至Sybase ASE迁移指南 #### 一、引言 本白皮书旨在帮助用户完成从Oracle到Sybase Adaptive Server Enterprise (ASE)的应用程序迁移过程。本文档将详细介绍两个数据库管理系统之间的主要差异,并提供一个...
Sybase数据库迁移到Oracle-11g手册【中文版】 一、概述 Sybase数据库迁移到Oracle-11g手册【中文版】旨在帮助用户将Sybase数据库迁移到Oracle数据库11g。该手册涵盖了以下主题:概述、先决条件、创建mwrep用户、...
首先,需要在运行Oracle的服务器上安装Sybase客户端软件(或在同一台服务器上安装Oracle与Sybase服务器),确保可以从Oracle环境访问到Sybase数据库。这是实现跨数据库访问的基础条件之一。 #### 2. 安装...
Oracle12C 向达梦8(DM8)迁移是一个涉及多个步骤的技术过程,主要目的是将现有的Oracle数据库系统顺利地转换到达梦数据库平台,以利用其特定的优势或满足特定的业务需求。以下是对这个迁移过程的详细说明: 一、...
总结来说,从MySQL到Oracle的数据迁移是一个涉及多个步骤的过程,需要正确配置和管理数据库环境,确保用户和表空间设置正确,并且使用像SQL Developer这样的工具来简化迁移。在迁移过程中遇到问题时,要逐一排查,如...
3. 第三方工具:市面上有许多第三方工具,如ETL(Extract, Transform, Load)工具,如Informatica、SSIS等,它们提供更灵活的配置和调度,能够处理复杂的数据同步任务,包括Oracle到Sybase的数据迁移。 四、性能...
Oracle 数据迁移完整手册 Oracle 数据迁移是一种常见的数据库管理操作,目的是将 Oracle 数据库从一台服务器迁移到另一台服务器。以下是 Oracle 数据迁移的完整手册,涵盖了迁移方法概述、实现步骤、其他方法等...
通过使用Oracle数据泵技术,即使是在复杂的环境中也能顺利地完成数据迁移任务。本文档提供的步骤不仅详细而且易于理解,即便是初学者也能轻松掌握。在实际操作过程中,根据具体的数据库环境和个人需求,可能还需要...
国产化改造,如何将Oracle数据完整迁移到DM数据库。 本文将详细介绍将Oracle数据完整迁移到DM数据库的过程,包括分析待移植系统、数据迁移、PL/SQL移植、移植结果校验、应用系统移植、测试和优化等几个方面的工作。...
这个"Oracle,SyBase,DBF数据转换器"是一个实用工具,它允许用户在这些系统之间进行数据迁移和转换。 Oracle数据库是全球广泛使用的大型企业级数据库系统,以其高度可扩展性、安全性和性能而闻名。它支持复杂的SQL...
Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结
在IT行业中,数据库迁移是一项常见的任务,特别是在不同的数据库系统之间,如从Oracle迁移到Sybase。本篇文章将详细探讨如何利用JAVA编程语言,通过JDBC(Java Database Connectivity)接口实现Oracle数据到Sybase的...
数据类型的转换是Oracle向Sybase迁移过程中首先需要解决的问题之一。不同数据库系统间的数据类型并不总是完全一致,因此必须进行适当的映射以确保数据完整性和准确性。以下是一些常见的数据类型及其转换方式: - **...
随着技术的发展,许多医疗机构选择将数据库从传统的Windows环境迁移到更稳定、开源的Linux操作系统。本文针对的就是这样一个案例:武警医学院附属医院在中心机房搬迁的同时,将运行在双机镜像环境下的Oracle数据库...
ORACLE数据库跨平台迁移 ORACLE数据库跨平台迁移是指将WINDOWS平台上的ORACLE数据库迁移到LINUX平台,当前LINUX平台只装数据库软件,不建库。本文将详细介绍如何使用RMAN Convert database特性来实现数据库跨平台...
在这个官方的“migration sybase to oracle”教程中,我们很显然会探讨如何从Sybase数据库系统迁移到Oracle数据库系统的具体步骤和策略。Sybase是一款强大的企业级数据库管理系统,而Oracle则以其高度可扩展性和企业...
随着业务的发展和技术的进步,可能会遇到需要将原有的Oracle数据库迁移到新的环境或者进行数据整合的情况。数据迁移是一项复杂且重要的工作,它不仅涉及数据本身的迁移,还包括了表结构、存储过程、函数、同义词、...
Sybase IQ迁移快速指导手册主要面向从Oracle数据库迁移到Sybase IQ数据库的场景,提供了一系列的迁移步骤和指导方案。以下将详细介绍各个步骤中涉及的关键知识点。 1. 数据迁移概述: 数据迁移通常是因为业务发展...