Mysql和oracle区别

这几天在做的synch4j,以前没怎么用过mysql,没想到这么多坑,请允许我吐槽一句mysql真难用。。

以下为我最近几天遇到的问题,发现的一些区别:

1)mysql不支持匿名块,没法像oracle一样使用匿名块方便地执行脚本,只能先创建出一个存储过程,然后执行,删除;

2)mysql的declare在begin内部声明,不像oracle在begin外部声明;

声明变量方式:

DECLARE TABLE_BLOBCLOB VARCHAR(100);

SET TABLE_BLOBCLOB = 'P#SYNCH_T_BLOBCLOB';

3)mysql在存储过程中执行动态sql语句,不像oracle只需要execute immediate就可以了,而是。。

SET v_sql='xxx';
set @v_sql=v_sql;
PREPARE stmt from @v_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

4)mysql的视图不支持子查询。。蛋碎了。。。我想骂人,用视图就是为了查询时方便,简化sql,怎么可能没有子查询。。

5)mysql不支持oracle那种主键sys_guid()这种设置,程序兼容性需要考虑。。使用auto_increment必须是primarykey并且是int类型

6)其他类型上的,MYSQL不支持CLOB,只有TEXT等类型;ORACLE中是NUMBER,MYSQL是numberic,还有一些查询语句分页LIMIT不细说了;唯一觉得比ORACLE方便的地方

7)还有比较蛋疼的地方是MYSQL的存储过程不支持单点调试功能,只能通过SELECT 变量名输出。。发火

目前遇到的就是这些坑,后续再更新;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值