oracle异常如何写,oracle存储过程怎么报异常

oracle 用户自定义异常

--设:要抛出的异常叫做ex_no_data,要判断是否小于0的变量为:v_data,则:

创新互联建站主营康乐网站建设的网络公司,主营网站建设方案,app开发定制,康乐h5重庆小程序开发公司搭建,康乐网站营销推广欢迎康乐等地区企业咨询

DECLARE

--声明异常

ex_no_data EXCEPTION; -- Exception to indicate an error condition

v_data NUMBER; -- Variable to hold data

--v_ErrorCode NUMBER; -- Variable to hold the error message code

--v_ErrorText VARCHAR2(200); -- Variable to hold the error message text

BEGIN

--抛出异常

IF v_data 0 THEN --(括号内填抛出异常的条件)

RAISE ex_no_data;

END IF;

--捕捉异常

EXCEPTION

WHEN ex_no_data THEN

dbms_output.put_line(v_data);

--捕捉其他异常,并获得 捕获异常的内容

WHEN OTHERS THEN

null;

-- v_ErrorCode := SQLCODE;

-- v_ErrorText := SUBSTR(SQLERRM, 1, 200);

-- 注意这里用SUBSTR 来截取错误消息

--dbms_output.put_line(v_ErrorCode || '::'||v_ErrorText);

END;

/

---另可参考我之前的一个帖子:

oracle 中的 exception when others then 捕获异常 在db2中怎么写

db2中类似oracle的异常捕获写法:

举例如下:

CREATE PROCEDURE OUT_LANGUAGE (...,OUT returnCode INTEGER, OUT returnMsg CHAR(32))

-- returnCode 返回执行中的的错误代码

-- returnMsg 返回执行中的的错误描述

SPECIFIC SQL_OUT_LANGUAGE

LANGUAGE SQL

BEGIN

DECLARE SQLCODE INTEGER DEFAULT 0;

DECLARE SQLSTATE CHAR(5) DEFAULT ´00000´;

DECLARE errorLabel CHAR(32) DEFAULT ´´;

......

-- in case of no data found

DECLARE CONTINUE HANDLER FOR NOT FOUND

BEGIN

SET returnCode = SQLCODE;

-- 也可以设置为 SET returnCode = 0; 因为这个DECLARE是为了忽略NOT FOUND的执行结果

END;

-- in case of SQL error

DECLARE EXIT HANDLER FOR SQLEXCEPTION

BEGIN

SET returnCode = SQLCODE;

SET returnMsg = errorLabel;

END;

oracle存储过程异常怎么写

begin  

select into ......................;

exception  

when errorException then  

.................

when others then  

..................

end;


当前文章:oracle异常如何写,oracle存储过程怎么报异常
本文网址:http://scyanting.com/article/dsseiod.html