PL/Sql 显示的抛出异常

本文详细介绍了在Oracle数据库中如何使用RAISE_APPLICATION_ERROR函数来触发自定义错误,从而实现更精细的异常处理流程。通过一个具体的存储过程示例,展示了如何定义和引发错误,以及如何捕获并处理这些错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 RAISE_APPLICATION_ERROR(-20100, 'Invalid Registration');

SQL> CREATE OR REPLACE PROCEDURE pb IS
  2    invalid_data EXCEPTION;
  3    PRAGMA EXCEPTION_INIT(invalid_data, -20100);
  4    v_sqlerrm VARCHAR2(2000);
  5  BEGIN
  6    IF TRUE THEN
  7      RAISE_APPLICATION_ERROR(-20100, 'Invalid Registration');
  8    END IF;
  9  EXCEPTION
 10    WHEN invalid_data THEN
 11      v_sqlerrm := SQLERRM;
 12      dbms_output.put_line(v_sqlerrm);
 13  END;
 14  /
 
过程已创建。
 
SQL> 
SQL> SET serveroutput ON;
SQL> exec pb;
ORA-20100: Invalid Registration
 
PL/SQL 过程已成功完成。

- Oracle中,允许使用“RAISE_APPLICATION_ERROR”函数产生一个用户自定义的错误,使得事务进入异常处理

PROCEDURE RAISE_APPLICATION_ERROR( error_number_in IN NUMBER, error_msg_in IN VARCHAR2);

- error_number_in 之容许从 -20000 到 -20999 之间
- 在开发存储过程或者PL/Sql 时,可以根据需要随时产生 SQL错误,并在事务中使用exception语句处理指定错误号的后续工作.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值