四、存储过程,函数和程序包的移植
程序包是Oracle用来组织逻辑功能的一个Object,MySQL不支持,因此需要将包里的存储过程﹑函数等全部放到该数据库公有过程和函数里面。
MySQL的过程和函数语法与Oracle类似,但还是有细微差别,除了数据类型需要转换,还有:
1. 格式不同,例如:
Oracle为:
CREATE OR REPLACE procedure procedure1(TableName in varchar2) is
MySQL应该为:
CREATE procedure procedure1( in TableName varchar(200))
2. 赋值语句不同:
Oracle赋值语句为:
strSQL := ‘update table set field1=1’;
MySQL应该为:
Set StrSQL = ‘update table set field1=1’;(用:=也行)
3. 一些要用到游标的过程请注意
MySQL过程不支持嵌套游标,不支持带参游标,不支持记录类型%ROWTYPE,不支持数组等,原Oracle用到这些的必须改写
五、Job的移植
Job是Oracle的定时任务实现的方法,MySQL6中用Event实现,具体语法请参考MySQL手册。
在MySQL中使用event请注意,默认它是不运行的,您可以
1) 保证MySQL定时任务event scheduler运行,需要MySql 5.1.6以上,并且在启动后执行SET GLOBAL event_scheduler = ON;(也可以在初始配置文件比如my.ini中加入event_scheduler = ON的参数)
2)启用event功能后,每次执行会往MySQL的错误日志文件写一些信息(data目录下的“主机名.err”文件),导致这个文件越来越大(除非经常做 flush log操作)。所以,如果您的event执行很频繁,可在my.ini中加参数console=TRUE,这样执行event的信息就不会写进来了
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|