• Oracle 存储过程 捕获异常


    1、带参数插入并带返回值,异常信息

    CREATE OR REPLACE PROCEDURE test_pro (v_id in int,v_name in varchar2,app_code out int,error_Msg out varchar) -- in 是输入参数;out 输出参数
    IS
    BEGIN
            INSERT INTO proc_test (id,name) VALUES (v_id,v_name); --往表中插入一条数据
            app_code:=8;          --执行状态码,8 成功;9失败
            error_Msg:='执行成功'; --执行执行结果
            commit; --提交事务
    EXCEPTION
            rollback; --回滚提交的事务
            when others then 
              app_code:=9; --执行状态码,8 成功;9失败
              error_Msg:=SUBSTR(SQLERRM, 1, 200); --返回报错信息
              --存储过程调用失败,往存储过程日志表追加一条记录,方便以后查询;第一个参数:调用存储过程名,第二个参数:错误信息
              INSERT INTO proc_error (proc_name,msg_error) VALUES ('test_pro',error_Msg);
              commit; --重新提交事务,记录日志
    END;

    调用

    --调用存储过程
    DECLARE
            app_code number; --声明变量,用于接收状态码
            msg_error varchar(200); --声明变量,用于接收错误信息
    BEGIN
            test_pro(2,'222',app_code,msg_error);
            dbms_output.put_line(app_code); --输出状态码
            dbms_output.put_line(msg_error); --输出错误信息
    END;
  • 相关阅读:
    mysql安装遇到的坑
    git pull 、git fetch、 git clone
    MD markdown入门
    Libevent:8Bufferevents高级主题
    Libevent:6辅助函数以及类型
    Libevent:5events相关
    Libevent:4event loop
    Libevent:3创建event_base
    Libevent:2设置
    Libevent:1前言
  • 原文地址:https://www.cnblogs.com/chenyanbin/p/12749912.html
Copyright © 2020-2023  润新知