在存储过程中处理异常declare exit Handler for sqlexception能不能获取sqlexception 里面的详细信息,我想把错误信息插入到一张表中

解决方案 »

  1.   


    DROP PROCEDURE IF EXISTS a;
    CREATE PROCEDURE A()
    BEGIN
    declare exit handler for sqlexception 
    select 'error'; 
    rollback;
    insert into t2(a,b) VALUES('a','b','c');
    COMMIT;
    end;CALL a();
    sqlexception需要枚举,比如
    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000 '
    DECLARE CONTINUE HANDLER FOR 1329
    等等。每个枚举,写入不同的错误信息。
    例子里面的SELECT 'ERROR'改成一个INSERT。
      

  2.   

    就是不想枚举啊,能不能做到
    和oracle一样异常处理:直接可以得到 sqlerrm 错误信息。
    EXCEPTION 
        WHEN OTHERS THEN 
          DBMS_OUTPUT.put_line('sqlerrm : ' ||sqlerrm); 
          ROLLBACK; 
    zuoxingyu 你一般在存储过程里面怎么处理异常的???
      

  3.   

    对了,大家能不能共享一份 在开发中的 mysql 存储过程 编写规范,例如 存储过程 命名,变量定义 等等规范