`
zzw111111
  • 浏览: 6629 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

MYSQL数据迁移至ORACLE

阅读更多

有很多应用项目, 刚起步的时候用MYSQL数据库基本上能实现各种功能需求,随着应用用户的增多,数据量的增加,MYSQL渐渐地出现不堪重负的情况:连接很慢甚至宕机,于是就有把数据从MYSQL迁到ORACLE的需求,应用程序也要相应做一些修改。总结出以下几点注意事项。

1自动增长的数据类型处理
MYSQL
有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。ORACLE没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。

CREATE SEQUENCE
序列号的名称 (最好是表名+序列号标记) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;
其中最大的值按字段的长度来定, 如果定义的自动增长的序列号 NUMBER(6) , 最大值为999999
INSERT
语句插入这个字段值为: 序列号的名称.NEXTVAL

2. 单引号的处理
MYSQL
里可以用双引号包起字符串,ORACLE里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。

3.翻页的SQL语句的处理
MYSQL
处理翻页的SQL语句比较简单,用LIMIT 开始位置, 记录个数;PHP里还可以用SEEK定位到结果集的位置。ORACLE处理翻页的SQL语句就比较繁琐了。每个结果集只有一个ROWNUM字段标明它的位置, 并且只能用ROWNUM<100, 不能用ROWNUM>80
以下是经过分析后较好的两种ORACLE翻页SQL语句( ID是唯一关键字的字段名 )
语句一:
语句二:

SELECT ID, [FIELD_NAME,...]
FROM TABLE_NAME
WHERE ID IN (

  SELECT ID

FROM (

    SELECT ROWNUM AS NUMROW, ID

    FROM TABLE_NAME

    WHERE条件1

    ORDERBY条件2)

WHERE NUMROW >80AND NUMROW <100 )

ORDERBY条件3;

4长字符串的处理
长字符串的处理ORACLE也有它特殊的地方。INSERTUPDATE时最大可操作的字符串长度小于等于4000个单字节, 如果要插入更长的字符串, 请考虑字段用CLOB类型,方法借用ORACLE里自带的DBMS_LOB程序包。插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告,返回上次操作。

5. 日期字段的处理
MYSQL日期字段分DATETIME两种,ORACLE日期字段只有DATE,包含年月日时分秒信息,用当前
数据库的系统时间为SYSDATE, 精确到秒,或者用字符串转换成日期型函数TO_DATE(‘<st1:chsdate isrocdate="False" islunardate="False" day="1" month="8" year="2001">2001-08-01</st1:chsdate>’,’YYYY-MM-DD’)-- 24小时:分钟:的格式YYYY-MM-DD HH24:MI:SS TO_DATE()还有很多种日期格式, 可以参看ORACLE DOC.日期型字段转换成字符串函数TO_CHAR(‘<st1:chsdate isrocdate="False" islunardate="False" day="1" month="8" year="2001">2001-08-01</st1:chsdate>’,’YYYY-MM-DD HH24:MI:SS’)

日期字段的数学运算公式有很大的不同。MYSQL找到离当前时间7天用 DATE_FIELD_NAME > SUBDATENOW(),INTERVAL 7 DAYORACLE找到离当前时间7天用 DATE_FIELD_NAME >SYSDATE - 7;

6.空字符的处理
MYSQL的非空字段也有空的内容,ORACLE里定义了非空字段就不容许有空的内容。按MYSQLNOT NULL来定义ORACLE表结构, 导数据的时候会产生错误。因此导数据时要对空字符进行判断,如果为NULL或空字符,需要把它改成一个空格的字符串。

7. 字符串的模糊比较
MYSQL里用字段名 like '%字符串%',ORACLE里也可以用字段名 like '%字符串%' 但这种方法不能使用索引, 速度不快,用字符串比较函数 instr(字段名,'字符串')>0 会得到更精确的查找结果。

8. 程序和函数里,操作数据库的工作完成后请注意结果集和指针的释放。

分享到:
评论

相关推荐

    记使用Oracle SQL Developer 迁移MySql 数据至 Oracle.docx

    将mysql的数据库表迁移到oracle中,使用sql developer 工具进行迁移,在迁移过程中遇到了很多坑,比如视图或表不存在错误,本文都进行了一一讲解,亲测成功。

    Oracle到Mysql数据库迁移总结

    Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结

    Oracle导Mysql适用于百、千万级别数据迁移

    Oracle导Mysql适用于百、千万级别数据迁移,速度是kettle的10倍以上数据库迁移 数据迁移 千万级 亿万级数据,MySQL oracle关系型 现需要开发一套程序用来快速迁移数据库,要求如下: 1.使用人员可以指定迁移数据库...

    数据库迁移 数据迁移 千万级 亿万级数据MySQL oracle关系型

    1.使用人员可以指定迁移数据库类型 如:(orcal,sqlServer,csv 迁移至mysql) 2.在迁移数据库时,可以只迁移指定字段. 3.开发多任务的平台,按权重去执行任务,如:权重为1,1,2,3,4 那么1,1的权重一起执行,执行完毕后2...

    mysql和Oracle数据互相迁移

    Oracle和Mysql互相迁移数据,可同时迁移多个不同数据库数据(并发的将数据在oracle和mysql之间随意迁移),效率高(实际测试表明,将100万数据从oracle迁移到mysql耗时2分30秒,其中1分30秒耗在oracle查询上),支持...

    Mysql迁移Oracle方案

    2 数据迁移 2.1 数据准备 2.1.1 生产数据备份 2.1.2 导入机还原备份文件 2.2 Oracle SQL Developer配置连接 2.2.1 连接本机mysql数据库 2.2.2 连接生产oracle数据库 2.3 执行迁移 2.3.1 关联移植资料档案库 2.3.2 ...

    Mysql转Oracle软件 DBMover for Mysql to Oracle

    可以同时连接Mysql和Oracle,直接将数据导入Oracle。也可以保存数据到Dump文件。 功能完善的错误处理机制。记录每一条有异常的数据。并提供工具重复执行。 全面优化数据库操作,让大数据量的处理更少等待。

    oracle到mysql建表语句迁移

    oracle向mysql建表语句的迁移。 直接表结构的生成sql脚本

    Mysql迁移到Oracle就是这么简单

    Convert Mysql to Oracle,已将instantclient12_1下找dll结尾的文件拷贝到Convert Mysql to Oracle的安装目录,直接打开此工具就可以了。

    迁移mysql数据到oracle上

    迁移mysql数据到oracle上,详细描述步骤。

    从Oracle迁移数据到MySql-工具oracle2mysqlcn

    数据迁移 oracle转mysql oracle数据迁移 mysql数据迁移 从Oracle迁移数据到MySql-工具oracle2mysqlcn 从Oracle迁移数据到MySql方法大全文章地址: http://www.bywei.cn/post/111.html

    强大简单的mysql迁移到oracle的工具

    NULL 博文链接:https://noobjava.iteye.com/blog/870011

    mysql数据迁移到Oracle的正确方法

    现在要把数据从mysql的student转移到Oracle的from_mysql中去,这里笔者借助kettle的spoon工具,可以快速的实现这个功能。 首先,打开spoon,新建一个转换,命名为表输入到表输出。然后在核心对象中的输入那里找到表...

    PHP将数据从Oracle向Mysql数据迁移的技术要领

    由于Mysql可以节约费用,并且其稳定性和功能也在提高,所以部分用户希望从Oracle迁移到Mysql上。本文就介绍了一下用PHP将Oracle迁移到Mysql的过程中用到的技术要领及一些注意事项。

    oracle数据迁移到mysql小工具

    oracle数据迁移到mysql小工具,方便连接两个系统进行数据迁移。

    mysql数据库迁移至Oracle数据库

    主要为大家详细介绍了mysql数据库迁移至Oracle数据库的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    ORACLE数据库迁移方案

    ORACLE数据库迁移方案,单机迁移到rac

    mysql数据导入到Oracle中

    此工具功能是将Mysql库中的数据迁移到Oracle中,迁移过程有多种方式可供选择。

    基于JDBC同步Oracle到MySQL

    分别有:数据源配置、数据表结构转换、字段更新、数据迁移、根据oracle SQL的UPDATE DELETE 事物执行记录转为Mysql可执行SQL,同步执行到MySql数据库,此项目为个人兴趣爱好练手项目,项目问题欢迎留言,共同进步...

    mysql迁移数据到oracle实用工具,试用版

    Dbmover for Mysql to Oracle,高效的数据库迁移工具.

Global site tag (gtag.js) - Google Analytics