1、语法上的区别
变量类型定义、IN OUT的位置、变量定义的位置、游标的位置、异常的位置;
2、MySQL没有 return 关键字,采用leave label的方式结束循环或跳出存储
3、异常处理 MySQL根据返回的错误码处理异常
4、锁
假如设置为自动加锁,则加锁语句执行完成后会自动提交,然后释放锁;select * from table1 where ………… for update;这句话执行完成后就会释放锁。这样的话某些情况下不能避免冲突,如后面需要update时;对于Oracle 则可以用 for uodate wait 10;即等待超过10秒即抛出异常
所以对于MySQL 一般都设置为手动释放锁,采用commit 或 rollback语句释放。
5、Oracle取前三条数据 rownum<=3 MySQL: limit 0,3
6、nvl(var1,var2) = ifnull(var1,var2)
7、设置表字段 时间类型,设为默认为当前时间 MySQL: current_timestamp Oracle:SYSDATE
8、Oracle数组 TYPE type_array IS VARRAY(5) OF NUMBER(10);
9、oracle select语句,默认排序是按照插入的先后顺序排序的;先插入的排在前面
MySQL select语句是按照主键的大小排序的,小的排在前面。