`
jayyanzhang2010
  • 浏览: 377745 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Oracle to MySQL

 
阅读更多

1.java 实体的移植

  主键生成策略有JPA 提供与Hibernate 提供之分

 JPA提供的四种标准用法为TABLE,SEQUENCE,IDENTITY,AUTO. 
     TABLE:使用一个特定的数据库表格来保存主键。 
     SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列。 
     IDENTITY:主键由数据库自动生成(主要是自动增长型) 
     AUTO:主键由程序控制。 

这里如果是mysql数据库一般使用Identity,Oracle 使用Sequence。 当使用Auto时,如果使用Oracle且配置了Sequence则使用Sequence,Mysql则使用Identity 。主键生成策略应该配置为Auto 并配置Squeuence,Oracle转mysql 则不会有问题。

 

2.DDL的问题

Orcale 里可以写 create or replace table  Table_name 

Mysql  需要变换为  Drop Table Table_name if exists table_name

                                create table table_name

3.Mysql需要对自增主键添加 auto_increment

   Oracle中一般会先建立表然后通过 alter table 设置表的 主键,这时需要注意,我们需要将主键定义在create table语句中进行。

4.Mysql引擎的选择

  Mysql5.*默认为Innodb,支持事物以及行锁表锁,所以应选择Innodb  ,但是对于使用空间数据的情况需要使用MyISAM,因为Innodb不支持空间数据

5.数据类型的转换

  下表是数据类型映射的表

 
 
MySQL Data Type Oracle Data Type

BIGINT

NUMBER(19, 0)

BIT

RAW

BLOB

BLOB, RAW

CHAR

CHAR

DATE

DATE

DATETIME

DATE

DECIMAL

FLOAT (24)

DOUBLE

FLOAT (24)

DOUBLE PRECISION

FLOAT (24)

ENUM

VARCHAR2

FLOAT

FLOAT

INT

NUMBER(10, 0)

INTEGER

NUMBER(10, 0)

LONGBLOB

BLOB, RAW

LONGTEXT

CLOB, RAW

MEDIUMBLOB

BLOB, RAW

MEDIUMINT

NUMBER(7, 0)

MEDIUMTEXT

CLOB, RAW

NUMERIC

NUMBER

REAL

FLOAT (24)

SET

VARCHAR2

SMALLINT

NUMBER(5, 0)

TEXT

VARCHAR2, CLOB

TIME

DATE

TIMESTAMP

DATE

TINYBLOB

RAW

TINYINT

NUMBER(3, 0)

TINYTEXT

VARCHAR2

VARCHAR

VARCHAR2, CLOB

YEAR

NUMBER

 

 

主要关注date,number,varchar2 的转换。其中需要注意 varchar2 的转换,因为在oracle 中varchar2表示存储的字节数,与编码有关,而mysql中varchar则没有,mysql中varchar(30)表示存储30个字符,所以此处需要注意。至于date 因为不需要支持微妙,所以我使用timestamp储存了。

6.常用的系统函数变化

   to_date --> char_to_date     to_char-->date_to_char     ||-->concat

7. hql 中需要注意,避免使用原始sql尽量使用hql,尤其是日期处理。对于空串的处理,在oracle中 varchar2下传入空串则oracle作为 null处理,所以你搜索空串是无结果的

   但是mysql中是有空串的. mysql中需要为子查询设置别名要么也会报错。分页查询,mysql中没有rownum,可以使用limit实现,建议使用hql。

8.注意切换hibernate方言

9.触发器与存储过程

   oracle的触发器比较高端,对于行触发器支持到按照某列改变触发,而mysql只支持行触发。 oracle中可以判断当前操作类型update,delete 还是 insert,mysql只能分开写    了。变量声明的语法也不相同,需要注意(会详细写一篇)

10。获取当前使用的数据库

   我的方法比较屌丝根据Hibernate方言判断使用哪种

              

  11.一些语法上的限制

   1).  Every derived table must have its own alias

   遇到这个问题驱动表需要有一个别名,比如 select sum(money) sum from (select * from guest limit 0,10) t;

   2)delete from decode_resource re  where re.decode_resource_id=1

  这个地方原因未知,delete 中不可以表的别名?去掉re即可  

分享到:
评论

相关推荐

    Convert Oracle to Mysql

    "Convert Oracle to Mysql"这个主题涉及到将Oracle数据库系统的数据迁移至MySQL数据库系统的过程。Oracle和MySQL都是广泛使用的数据库管理系统,但它们在架构、语法和管理方面存在显著差异。以下是关于这个过程的...

    OracleTOMysql 转换工具

    Oracle到MySQL转换工具是一种专门设计用于帮助用户将Oracle数据库中的数据和结构迁移至MySQL数据库的应用程序。这个过程通常称为数据库迁移或数据迁移,是企业在更换数据库系统时常常面临的需求。以下是一些关于...

    A Guide for Migrating From Oracle to MySQL

    many MySQL customers are migrating from Oracle because they have reached the conclusion that the combination of cost-savings and feature set of MySQL make for a compelling business case to offload ...

    Oracle to MySQL Oracle 转 MySQL亲自测试,好用

    Oracle to MySQL Oracle 转 MySQL亲自测试,好用

    OracleToMysql转换器

    OracleToMysql转换器是一款专为数据库管理员设计的实用工具,旨在实现从Oracle数据库到Mysql数据库的数据迁移。这个工具能够高效地处理不同数据库结构之间的转换,确保在切换过程中数据的完整性和一致性。 Oracle...

    银行数据库改造之路:Oracle to MySQL迁移实践.pdf

    银行数据库改造之路:Oracle to MySQL迁移实践 本文档主要讨论银行数据库改造之路,从 Oracle 到 MySQL 的迁移实践。迁移的原因主要有稳定性、预估业务量、技术支持、轻量级、实际业务量、学习周期、国货化趋势等。...

    oracle to mysql

    标题“Oracle to MySQL”指的是将数据从Oracle数据库迁移至MySQL数据库的过程。这通常涉及到数据库结构的转换、数据的迁移以及可能的兼容性问题解决。Oracle和MySQL是两种广泛应用的关系型数据库管理系统(RDBMS),...

    OracleToMysql数据同步.rar

    本压缩包文件"OracleToMysql数据同步.rar"似乎提供了一个解决方案,旨在帮助用户将Oracle数据库中的数据高效地迁移到MySQL数据库中。以下是关于这个主题的详细知识: 1. 数据库迁移基础:数据库迁移是将数据从一个...

    Oracle To Mysql

    Oracle到MySQL的数据迁移是一项常见的任务,特别是在企业进行数据库系统升级或整合时。Oracle数据库以其强大的功能和稳定性在大型企业中广泛应用,而MySQL由于其开源、轻量级和成本效益高的特性,在中小型企业及...

    Oracle to mysql 技术方案

    ### Oracle到MySQL的数据迁移技术方案 #### 一、概述 在企业级应用中,数据库迁移是常见的需求之一,尤其在面对成本控制和技术升级时更是如此。Oracle与MySQL作为两种广泛使用的数据库管理系统,前者通常用于大型...

    Oracle to Mysql

    Oracle到MySQL转换是一个常见的数据库迁移任务,特别是在企业寻求降低成本、提高效率或利用MySQL的开源优势时。这个实用工具专门设计用于将Oracle数据库中的数据高效、完整地迁移到MySQL环境中。以下是一些关于这个...

    SpringBoot定时任务实现Oracle和mysql数据同步

    Spring Boot作为Java领域的一个热门微服务框架,提供了强大的定时任务功能,能够帮助我们实现不同数据库间的数据同步,比如Oracle到MySQL。本篇文章将详细讲解如何利用Spring Boot的定时任务特性,结合Java的相关...

    Oracle GoldenGate 21.3 ,oracle to oracle and mysql to mysql

    Oracle GoldenGate 21.3 是一款强大的数据复制和实时数据集成工具,支持在Oracle数据库与MySQL数据库之间进行数据同步。在21.3版本中,GoldenGate引入了微服务架构,这使得部署和管理更加灵活,提高了系统的可扩展性...

    oracleToMySql

    标题“Oracle到MySQL”指的是一个转换工具,它能够帮助用户将数据从Oracle数据库无缝迁移到MySQL数据库。这个过程通常在数据库管理系统(DBMS)更换、数据迁移或扩展服务时进行。Oracle是全球知名的商业数据库系统,...

    Mysql转Oracle软件 DBMover for Mysql to Oracle

    Dbmover for Mysql to Oracle 是高效的将Mysql导入到Oracle数据库的工具。 使用DBMover可以灵活定义Mysql和Oracle之间表和字段的对照关系,也可以在DBMover创建一个查询,把查询结果当作源表转入到Oracle中。 ...

    Oracle数据库sql转换mysql数据库工具

    OracleToMysql.exe很可能就是这个转换工具的执行程序,它可能包含以下功能: 1. **SQL语法转换**:Oracle SQL和MySQL SQL在语法上有区别,如数据类型、子查询、游标、触发器等。工具会识别Oracle SQL语句并转换为...

    MySQL to Oracle MySQL 转 Oracle亲自测试,好用

    MySQL to Oracle MySQL 转 Oracle亲自测试,好用

    oracle与mysql对比

    ### Oracle与MySQL对比 在数据库管理系统领域,Oracle与MySQL都是极具影响力的选择,分别代表了企业级数据库和开源数据库的不同特点。下面将从安装目录、管理工具、客户端工具、基本操作命令等方面进行详细的对比...

Global site tag (gtag.js) - Google Analytics