有很多应用项目,
刚起步的时候用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也有它特殊的地方。INSERT和UPDATE时最大可操作的字符串长度小于等于4000个单字节,
如果要插入更长的字符串,
请考虑字段用CLOB类型,方法借用ORACLE里自带的DBMS_LOB程序包。插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告,返回上次操作。
5. 日期字段的处理
MYSQL日期字段分DATE和TIME两种,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 > SUBDATE(NOW(),INTERVAL 7 DAY)ORACLE找到离当前时间7天用
DATE_FIELD_NAME >SYSDATE - 7;
6.空字符的处理
MYSQL的非空字段也有空的内容,ORACLE里定义了非空字段就不容许有空的内容。按MYSQL的NOT
NULL来定义ORACLE表结构,
导数据的时候会产生错误。因此导数据时要对空字符进行判断,如果为NULL或空字符,需要把它改成一个空格的字符串。
7. 字符串的模糊比较
MYSQL里用字段名 like '%字符串%',ORACLE里也可以用字段名
like '%字符串%'
但这种方法不能使用索引,
速度不快,用字符串比较函数 instr(字段名,'字符串')>0
会得到更精确的查找结果。
8. 程序和函数里,操作数据库的工作完成后请注意结果集和指针的释放。
分享到:
相关推荐
将mysql的数据库表迁移到oracle中,使用sql developer 工具进行迁移,在迁移过程中遇到了很多坑,比如视图或表不存在错误,本文都进行了一一讲解,亲测成功。
Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结
Oracle导Mysql适用于百、千万级别数据迁移,速度是kettle的10倍以上数据库迁移 数据迁移 千万级 亿万级数据,MySQL oracle关系型 现需要开发一套程序用来快速迁移数据库,要求如下: 1.使用人员可以指定迁移数据库...
1.使用人员可以指定迁移数据库类型 如:(orcal,sqlServer,csv 迁移至mysql) 2.在迁移数据库时,可以只迁移指定字段. 3.开发多任务的平台,按权重去执行任务,如:权重为1,1,2,3,4 那么1,1的权重一起执行,执行完毕后2...
Oracle和Mysql互相迁移数据,可同时迁移多个不同数据库数据(并发的将数据在oracle和mysql之间随意迁移),效率高(实际测试表明,将100万数据从oracle迁移到mysql耗时2分30秒,其中1分30秒耗在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,直接将数据导入Oracle。也可以保存数据到Dump文件。 功能完善的错误处理机制。记录每一条有异常的数据。并提供工具重复执行。 全面优化数据库操作,让大数据量的处理更少等待。
oracle向mysql建表语句的迁移。 直接表结构的生成sql脚本
Convert Mysql to Oracle,已将instantclient12_1下找dll结尾的文件拷贝到Convert Mysql to Oracle的安装目录,直接打开此工具就可以了。
迁移mysql数据到oracle上,详细描述步骤。
数据迁移 oracle转mysql oracle数据迁移 mysql数据迁移 从Oracle迁移数据到MySql-工具oracle2mysqlcn 从Oracle迁移数据到MySql方法大全文章地址: http://www.bywei.cn/post/111.html
NULL 博文链接:https://noobjava.iteye.com/blog/870011
现在要把数据从mysql的student转移到Oracle的from_mysql中去,这里笔者借助kettle的spoon工具,可以快速的实现这个功能。 首先,打开spoon,新建一个转换,命名为表输入到表输出。然后在核心对象中的输入那里找到表...
由于Mysql可以节约费用,并且其稳定性和功能也在提高,所以部分用户希望从Oracle迁移到Mysql上。本文就介绍了一下用PHP将Oracle迁移到Mysql的过程中用到的技术要领及一些注意事项。
oracle数据迁移到mysql小工具,方便连接两个系统进行数据迁移。
主要为大家详细介绍了mysql数据库迁移至Oracle数据库的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
ORACLE数据库迁移方案,单机迁移到rac
此工具功能是将Mysql库中的数据迁移到Oracle中,迁移过程有多种方式可供选择。
分别有:数据源配置、数据表结构转换、字段更新、数据迁移、根据oracle SQL的UPDATE DELETE 事物执行记录转为Mysql可执行SQL,同步执行到MySql数据库,此项目为个人兴趣爱好练手项目,项目问题欢迎留言,共同进步...
Dbmover for Mysql to Oracle,高效的数据库迁移工具.