Mysql和oracle区别

来源:互联网 发布:屏幕录像 知乎 编辑:程序博客网 时间:2024/06/06 07:04

这几天在做的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 变量名输出。。发火

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

0 0
原创粉丝点击