oracle的function怎么抛出异常

 我来答
匿名用户
推荐于2018-03-04
展开全部

方法一, 直接抛

SQL> DECLARE
  2    -- 测试异常.
  3    e_test_exception EXCEPTION;
  4  BEGIN
  5
  6    -- 直接抛出异常,测试下面的捕获
  7    RAISE e_test_exception;
  8
  9    EXCEPTION
 10      WHEN e_test_exception THEN
 11        dbms_output.put_line('Test Error !');
 12      WHEN OTHERS THEN
 13        dbms_output.put_line('OTHERS Error!');
 14  END;
 15  /
Test Error !

PL/SQL procedure successfully completed.

方法二, 定义个错误代码与消息后, 再抛。


SQL> BEGIN
  2    -- 错误代码允许的范围是 -20,000~20,999
  3    RAISE_APPLICATION_ERROR(-20000, 'My Error Happen!');
  4
  5    EXCEPTION
  6      WHEN OTHERS THEN
  7        dbms_output.put_line('Error Code = ' || TO_CHAR(SQLCODE) );
  8        dbms_output.put_line('Error Message = ' || SQLERRM );
  9  END;
 10  /
Error Code = -20000
Error Message = ORA-20000: My Error Happen!

PL/SQL procedure successfully completed.
wucui2007ah
推荐于2016-07-01 · TA获得超过120个赞
知道小有建树答主
回答量:159
采纳率:0%
帮助的人:126万
展开全部
--这个是判断一个字符串是否为日期型的,如果异常就返回值0
CREATE OR REPLACE FUNCTION is_date(parameter VARCHAR2) RETURN NUMBER IS
val DATE;
BEGIN
val := TO_DATE(NVL(parameter, 'a'), 'yyyy-mm-dd hh24:mi:ss');
RETURN 1;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孤单DeHeart
2014-02-22 · TA获得超过295个赞
知道答主
回答量:37
采纳率:0%
帮助的人:6.5万
展开全部
raise 是抛出异常 你上下百度大师看下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式