plsql中异常的传递

原创 2015年07月06日 19:15:36
begin
  declare
    v_name varchar2(2) := 'ABC';
  begin
    dbms_output.put_line(v_name);
  exception
    when others then
      dbms_output.put_line('xxx');
  end;
exception
  when others then
    dbms_output.put_line('rrrrrr'||sqlcode || sqlerrm);

end;

声明区域的异常,直接是传递到了最外层

rrrrrr-6502ORA-06502: PL/SQL: 数字或值错误 :  字符串缓冲区太小


在异常中恢复,将异常的处理放到子块中,这样在处理完异常后,可以继续进行下面的语句操作。

declare
  e_duplicate_name exception;
  v_name    emp.ename%type;
  v_newname emp.ename%type := 'smith';
begin
  begin
    select ename into v_name from emp where empno = 123;
    if v_name = v_newname then
      raise e_duplicate_name;
    end if;
  exception
    when e_duplicate_name then
      v_newname = 'jack';
  end;
  insert into emp values (123, v_newname);
exception
  when others then
    dbms_output.put_line(sqlcode || sqlerrm);
end;


获取异常程序的位置,在oracle10g后,有dbms_utility.format_error_backtrace,可以用来跟踪堆栈

 when others then
    dbms_output.put_line(sqlcode || sqlerrm||dbms_utility.format_error_backtrace);
end;



版权声明:本文为博主原创文章,未经博主允许不得转载。

Oracle PlSql/Form 异常与处理

常用的 EXCEPTION异常及处理、自定义异常和在FROM开发中的异常及处理

plsql连接linux64oracle11g的异常和解决方法

1:安装【Oracle 11G11.2.0.3 Client for windows 64位】客户端,选择管理员模式。 2:配置监听和连接服务,这里不细说,参考链接http://jingyan.ba...
  • FU250
  • FU250
  • 2015年10月30日 16:36
  • 722

Oracle PLSQL Exception异常分类、异常抛出、异常处理、异常传播

一、摘要 在PLSQL程序开发过程中,很重要的部分就是对程序异常的监控和处理,包括如何触发异常,何时进行处理,如何进行处理,是否将程式中的所有异常集中在一起,通过公共异常处理的procedure...

示例一个PLSQL完成功能来说明PLSQL的作用(定义变量+异常处理+抛异常)

创建的员工表中添加一个新的成员,首先需要判断要添加的员工工号是否存在, 如果存在,则更新该工号对应的员工的信息,否则添加一个新的员工; SQL> select * from t where t.emp...

JNI数组传递与异常处理

摘自:http://blog.csdn.net/chenjin_zhong/article/details/5872566 JNI通过JNIEnv提供的操作Java数组的功能。它提供了两个函数:...

JNI数组传递与异常处理

JNI通过JNIEnv提供的操作Java数组的功能。它提供了两个函数:一个是操作java的简单型数组的,另一个是操作对象类型数组的。因为速度的原因,简单类型的数组作为指向本地类型的指针暴露给本地代码。...
  • lychaox
  • lychaox
  • 2011年07月14日 13:38
  • 569

C++抛出异常与传递参数的区别

代码便已运行环境:VS2012+Debug+Win321.C++异常处理基本格式C++的异常处理机制有3部分组成:try(检查),throw(抛出),catch(捕获)。把需要检查的语句放在try模块...

5.理解“抛出一个异常”,“传递一个参数”和“调用一个虚函数”间的差异

从语法上看,在函数里声明参数和在catch子句中声明参数几乎没什么区别。 class Widget { ... }; //一个类,具体是什么类 // 在这里并不重要 void f1(Widget...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:plsql中异常的传递
举报原因:
原因补充:

(最多只允许输入30个字)