整改了一番脚本,遇到了一些两种数据库之间的差异,记录一下:

触发器:

差异 MYSQL ORACLE 说明
创建语句不同 create trigger `AA` BEFORE INSERT on `BB` 
for each row 
create or replace trigger AA
  before insert or update or delete on BB
  for each row
1.Oracle可以在一个触发器触发insert,delete,update事件. 
   Mysql每个触发器只支持一个事件. 也就是说,目前每个trigger需要拆分成3个mysql trigger.
引用新旧数据不同 取得新数据: NEW.aa
取得老数据: OLD.bb
取得新数据: :new.aa
取得老数据: :old.bb
1.oracle 多一对冒号

存储过程:

差异 MYSQL ORACLE 说明
创建语句不同 DROP PROCEDURE IF EXISTS `SD_USER_P_ADD_USR`;
create procedure AA(
       aa varchar(100))
create or replace procedure AA(
   varchar aa) is

1.oracle创建语比较简洁,mysql要先执行drop

2.mysql先变量再类型,oracle相反,且不必限定长度

3.如果是number或varchar2的话不需要定义长度。否则编译不能通过

异常处理不一样 DECLARE EXIT HANDLER FOR  AAEXCEPTION 
 BEGIN
   ...
 END;
EXCEPTION
    WHEN OTHERS THEN
    ROLLBACK ;
    ....
1.mysql不能自定义异常,且使用内部异常时需要先定义
调用存储方式不同 call procedure(); procedure(); 1.调用方式不同

由于oracle删除触发器前没有判断是否存在,那么如何任性删除触发器呢:

declare   
 V_NUM number;

BEGIN

select count(0) into V_NUM from user_triggers where trigger_name = 'AA'; (注意大小写)

if V_NUM > 0 then   
    execute immediate 'DROP TRIGGER  AA';   
    end if;

END;

最新文章

  1. Myeclipse非正常关闭出现问题
  2. ZedGraph饼图---傻瓜版
  3. awk用法
  4. Solr5.3.1 SolrJ查询索引结果
  5. oneThink安装出错解决
  6. [设计模式] 12 代理模式 proxy
  7. 2014年度辛星css教程夏季版第五节
  8. mysql主从同步从库同步报错
  9. Ext JS学习第十七天 事件机制event(二)
  10. if else与switch区别
  11. 第一讲 新手如何学习HTTP协议之实践项目多开微信机器人
  12. Linux -- 项目部署
  13. [android] 手机卫士项目
  14. Centos7部署kubernetes Proxy(七)
  15. Python pip下载安装库 临时用清华镜像命令
  16. Linux命令之lsb_release - 查看当前系统的发行版信息
  17. python 四种单例模式
  18. 622.设计循环队列 javascript实现
  19. 51nod 1217 Minimum Modular(数论+暴力)
  20. JQuery -- Jquery 中的Ajax, Jquery解析xml文件

热门文章

  1. 邮件发送 java
  2. deepin2014.1快捷键
  3. 用户id有则更新,无则添加 使用replace into (代替 insert into)
  4. Openjudge-计算概论(A)-骑车与走路
  5. Developing a Custom Membership Provider from the scratch, and using it in the FBA (Form Based Authentication) in SharePoint 2010
  6. MySQL5.5.源码安装
  7. C# List 扩展排序
  8. php中文乱码问题分析及解决办法
  9. C语言_函数【转】
  10. vi 操作技巧