精华内容
下载资源
问答
  • 但是,在存储过程使用Oracle的Raise根本无法满足要求。于是用到了RAISE_APPLICATION_ERRORRAISE_APPLICATION_ERROR ( error_number_in IN NUMBER, error_msg_in IN VARCHAR2);error_number: 自定义...

    最近在进行项目开发时,根据业务逻辑在处理数据时,需要返回Message并阻止程序继续运行。但是,在存储过程使用Oracle的Raise根本无法满足要求。

    于是用到了RAISE_APPLICATION_ERROR

    RAISE_APPLICATION_ERROR ( error_number_in IN NUMBER, error_msg_in IN VARCHAR2);

    error_number: 自定义的错误编号。

    error_msg:自定义的错误内容。

    在使用过程中,遇到了下面的问题。

    ORA-21000: error number argument to raise_application_error of [xxxx] is out of range

    出现这个错误的原因是:在存储过程中定义的错误代码Number不在Oracle所允许的范围之内。

    Oracle允许自定义的错误代码的范围为-20000 -- -20999

    这样,就在Java端可以通过SQLException来捕获异常。

    虽然通过SQLException.getMessage()可以捕获到异常的内容,但是这些内容对于开发比较有用。对于客户来说,并不友好,也没有多大意义。

    通过SQLException.getErrorCode()可以捕获到自定义的异常错误编号。然后就可以,通过这个错误编号,自定义相应的Message内容,返回给客户了。

    还有1个办法,就是存储过程返回值。可以直接把错误Message定义在返回值中间。这样Java端解析后,直接就可以取得Message代码了。

    If  condition then

    p_result := 'ERR:MSG2061';

    end if;

    if  substr(p_result, 1, 3)  = 'ERR' then

    ROLLBACK;

    else

    p_result = 'OK';

    end if;

    Java:略去中间的调用存储过程的步骤

    if(result != null && result.startsWith("ERR:"))

    // 从result中解析出Message_id,显示Message到前台

    ©著作权归作者所有:来自51CTO博客作者guojie的原创作品,如需转载,请注明出处,否则将追究法律责任

    展开全文
  • Oracle 自定义异常

    2017-03-22 09:24:50
    Oracle 自定义异常

    -- 自定义异常

    1.定义异常标识符

    2.触发异常

    3.捕捉并处理异常

    ----------------------------------------------------------------------------------------------

    declare
     e_integrity exception;              -- 定义异常标识符
     names tg_test_user.tg_test_username%type :=lower('&n');
     begin
       update tg_test_user set tg_test_password='626262' where lower(tg_test_username)=names;
       if SQL%notfound then
         raise e_integrity;                      -- 触发异常
       end if;
      exception
         when e_integrity then                                               -- 捕捉并处理异常
           dbms_output.put_line('不存在用户'||lower('&n'));
     end;
    展开全文
  • oracle自定义异常

    2011-11-23 11:51:57
    oracle自定义异常,里面包括自定义异常的示例,分享一下!
  • 主要介绍了详解Oracle自定义异常示例的相关资料,需要的朋友可以参考下
  • 总结 以上是编程之家为你收集整理的详解Oracle自定义异常示例全部内容,希望文章能够帮你解决详解Oracle自定义异常示例所遇到的程序开发问题。 如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员...

    1.弹出错误框:

    示例代码:

    sql;">

    declare

    v_count number;

    begin

    select count(*) into v_count from dept;

    if v_count < 10 then

    raise_application_error(-20001,'数量小于10');

    end if;

    end;

    执行结果:

    201604061119375.png

    2.控制台显示:

    示例代码:

    sql;">

    declare

    v_count number;

    my_exp exception;

    begin

    select count(*) into v_count from dept;

    if v_count < 10 then

    raise my_exp;

    end if;

    exception

    when my_exp then

    dbms_output.put_line('数量小于10');

    when others then

    dbms_output.put_line('其他异常');

    end;

    执行结果:

    201604061119376.png

    PS:ORACLE 用户自定义异常小例子

    sql;">

    CREATE OR REPLACE PROCEDURE test_Exception_byLeejin

    (

    ParameterA IN varchar,ParameterB IN varchar,ErrorCode OUT varchar --返回值,错误编码

    )

    AS

    /*以下是一些变量的定义*/

    V NUMBER;

    V nvarchar();

    V NUMBER;

    APP_EXP EXCEPTION; --自定义异常

    BEGIN

    ErrorCode :='';

    IF (ParameterA=ParameterB) THEN

    ErrorCode := 'ParameterA = ParameterB';

    RAISE APP_EXP; -- 抛出异常

    END IF;

    EXCEPTION

    WHEN APP_EXP THEN --在处理异常

    RAISE_APPLICATION_ERROR(-,ErrorCode);

    WHEN OTHERS THEN

    RAISE_APPLICATION_ERROR(-,'未知异常');

    END;

    总结

    以上是编程之家为你收集整理的详解Oracle自定义异常示例全部内容,希望文章能够帮你解决详解Oracle自定义异常示例所遇到的程序开发问题。

    如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

    展开全文
  • Oracle自定义异常使用

    千次阅读 2016-05-02 13:44:34
    最近在进行项目开发时,根据...但是,在存储过程使用Oracle的Raise根本无法满足要求。  于是用到了RAISE_APPLICATION_ERROR  RAISE_APPLICATION_ERROR ( error_number_in IN NUMBER, error_msg_in IN VARCHAR2); 
    最近在进行项目开发时,根据业务逻辑在处理数据时,需要返回
    Message
    并阻止程序继续运行。但是,在存储过程使用
    Oracle
    
    Raise
    根本无法满足要求。
    
             于是用到了 RAISE_APPLICATION_ERROR
         RAISE_APPLICATION_ERROR ( error_number_in IN NUMBER, error_msg_in IN VARCHAR2); 

          error_number:   自定义的错误编号。
          error_msg
    :自定义的错误内容。
             在使用过程中,遇到了下面的问题。
    ORA-21000: error number argument to raise_application_error of [xxxx] is out of range
    出现这个错误的原因是:在存储过程中定义的错误代码Number不在Oracle所允许的范围之内。
               Oracle允许自定义的错误代码的范围为-20000 -- -20999

               这样,就在Java端可以通过 SQLException来捕获异常。
               虽然通过SQLException.getMessage()可以捕获到异常的内容,但是这些内容对于开发比较有用。对于客户来说,并不友好,也没有多大意义。
             通过 SQLException.getErrorCode()可以捕获到自定义的异常错误编号。然后就可以,通过这个错误编号,自定义相应的Message内容,返回给客户了。
     
    还有1个办法,就是存储过程返回值。可以直接把错误Message定义在返回值中间。这样Java端解析后,直接就可以取得Message代码了。
    If   condition then
         p_result := 'ERR:MSG2061';
    end if;
    if   substr(p_result, 1, 3)   = 'ERR' then
           ROLLBACK;
    else
           p_result = 'OK';
    end if;
     
    Java:略去中间的调用存储过程的步骤
    if(result != null && result.startsWith("ERR:"))
      // 从result中解析出Message_id,显示Message到前台
    展开全文
  • Oracle自定义异常应用

    2019-12-27 13:47:52
    1.自定义异常的应用 sqlcode函数用来返回内部异常代码。 sqlerrm函数返回错误信息。 dbms_utility.format_error_backtrace 返回错误行号。 declare error exception; --定义异常 result varchar2(2000); begin...
  • oracle自定义异常处理

    千次阅读 2018-09-29 22:28:08
    -- 自定义异常名称 NO_CONFIG_EXCEPTION exception; v_sqlcode varchar2(20); -- 错误码 v_sqlerrm varchar2(300); -- 错误信息 -- 告诉编译器将异常名 与 ORACLE 错误码结合起来 pragma exception_init(NO_...
  • Oracle数据库自定义异常使用方法来源:不详作者:佚名时间:2009-9-6 17:14:04 Tags: Orac 使用方法需求:业务逻辑在处理数据时,需要返回Message并阻止程序的继续运行。但是,在存储过程使用Oracle数据库的Raise...
  • 场景:Oracle——十用户自定义函数Oracle——10用户自定义函数用户自定义函数是存储在数据库中的代码块,可以把值返回到调用程序。函数的参数有3种类型:(1)in参数类型:表示输入给函数的参数,该参数只能用于传值,...
  • oracle 自定义异常处理

    2016-09-18 16:36:00
    --第一种方式:使用raise_application_error抛出自定义异常declare i number:=-1;begin if i=-1 then raise_application_error(-20000,'参数值不能为负'); --抛出自定义异常 end if; exception when others then dbms...
  • 自定义异常 在PL/SQL申明部分我们可以定义自己的异常变量,并绑定异常代码 declare exceptiontest exception;--定义异常变量 pragma exception_init(exceptiontest,-20998);--将异常代码20998与该异常变量绑定 begin...
  • Oracle自定义异常

    千次阅读 2012-02-23 14:44:27
    declare -- Local variables here ... dbms_output.put_line('异常行号:'|| DBMS_UTILITY.FORMAT_ERROR_BACKTRACE); when others then dbms_output.put_line('other exception!'); end;  
  • ORACLE自定义异常

    2013-01-09 11:25:04
    exp_check_failure exception;  pragma exception_init(exp_check_failure, -20001);
  • 自定义异常: 如果想在某个特定事件发生时向应用程序的用于发出一些警告信息.而事件本身不会抛出Oracle内部异常,这个异常属于应用程序的特定异常.那么就需要自定义异常. 用于定义的异常错误是通过使用raise语句来...
  • CREATE OR REPLACE FUNCTION F_GETNAME(P_KIND IN VARCHAR2,P_CODE IN VARCHAR2) ...现在我的一个存存储过程需要调用此函数,有传入参数可能查不到,大部分可以查到,可是 我设置返回空值了啊,为什么还会报异常呢?
  • 注意:普通的查询语句不会出现异常,只有使用into对变量进行赋值的时候才会发生异常 --系统变量: notfound -->...用户自定义异常写在:declare里,如: set serveroutput on declare no_result ex
  • Oracle异常处理及举例(Oracle预定义异常和自定义异常
  • 查找资料总结了ORACLE预定义异常及产生的原因,若有出入请多多指教。   Exception Oracle Error SQLCODE Value 产生原因 ACCESS_INTO_NULL ORA-06530 -6530 未定义...
  • 但是,在存储过程使用Oracle数据库的Raise根本无法满足现在的要求。 解决方法: 使用RAISE_APPLICATION_ERROR RAISE_APPLICATION_ERROR ( error_number_in IN NUMBER, error_msg_in IN VARCHA
  • Oracle数据库自定义异常使用方法

    千次阅读 2009-11-12 23:07:00
    来源:不详 作者:佚名 时间:2009-9-6 17:14:04 Tags: Orac 使用...但是,在存储过程使用Oracle数据库的Raise根本无法满足现在的要求。 解决方法: 使用RAISE_APPLICATION_ERROR RAISE_APPLICATION_ERROR ( error_
  • ORACLE 用户自定义异常小例子  1.进入pl/sql测试窗口  2.执行语句  declare  empname varchar2(255);  customize_exp EXCEPTION; –自定义异常  begin  FOR c IN (select d.* from scott.dept d) ...
  • oracle plsql 自定义异常

    2019-06-07 12:43:00
    set serveroutput on DECLARE cursor cemp is select ename from emp where deptno=50; ...pename emp.ename%type;...--自定义异常 no_emp_found exception; begin open cemp; fetch cemp into pename...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 39,285
精华内容 15,714
关键字:

oracle自定义异常必须使用