oracle plsql exception例外

not_data_found例外:

--系统列外
set serveroutput on

declare

  pename emp.ename%type;

begin

  select ename into pename  from emp where empno =1234;

exception
  when no_data_found then dbms_output.put_line(‘没有查到数据‘);
  when others then dbms_output.put_line(‘其他‘);

end;
/

too_many_rows例外:

 1 --系统例外: too_many_rows
 2
 3 set serveroutput on
 4 declare
 5
 6   pename emp.ename%type;
 7
 8 begin
 9
10   select ename into pename from emp where deptno = 10;
11
12 exception
13   when too_many_rows then dbms_output.put_line(‘select into 匹配多行‘);
14   when others  then dbms_output.put_line(‘其他‘);
15 end;
16 /

算数或转换例外:

 1 --系统例外 : value_error
 2
 3 set serveroutput on
 4
 5 declare
 6
 7   pnum number;
 8 begin
 9   pnum := ‘abc‘;
10
11 exception
12   when value_error then dbms_output.put_line(‘算术或转换错误‘);
13   when others then dbms_output.put_line(‘其他‘);
14 end;
15 /

0不能做除数例外:

 1 --系统例外 zero_divide
 2 set serveroutput on
 3
 4 declare
 5
 6   pnum number;
 7 begin
 8
 9   pnum := 1/0;
10
11 exception
12   when zero_divide then dbms_output.put_line(‘0不能做除数‘);
13   when others then dbms_output.put_line(‘其他‘);
14 end;
15 /

自定义例外:

--自定义例外: 

set serveroutput on

declare

  cursor cemp is select ename from emp where deptno =50;
  pename emp.ename%type;

  --自定义列外
  not_emp_data exception;

begin
  open cemp;

  fetch cemp into pename;

  if cemp%notfound then
      raise not_emp_data;
  end if;
  --如果程序程序中出现例外,oracle会通过pmon(process monitor)自动关闭清理资源
  close cemp;  

exception
  when not_emp_data then dbms_output.put_line(‘自定义例外:没有查询到数据‘);
  when others then dbms_output.put_line(‘其他列外‘);
end;
/

知识点出处:http://www.imooc.com/learn/360

时间: 2024-08-03 09:55:27

oracle plsql exception例外的相关文章

Oracle PLSQL:

PLSQL: 符号: 赋值: := 基本示例: set serveroutput on //设置输出打开. declare --说明部分 begin --程序 dbms_output.put_line('Hello World'); exception end; / 引用型变量: --查询7839的姓名和薪水 --查询7839的姓名和薪水 set serveroutput on declare --定义变量保存姓名和薪水 --pename varchar2(20); --psal number;

Oracle&PLSQL 安装及乱码问题解决

1,先到Oracle网站下载Instant Client ,如果有老版本,就不用下载了 下载回是一个压缩文件,解压之后的文件夹叫:D:/instantclient_11_2.放在你喜欢的目录即可.例如:D:/instantclient_11_2 2. 2.在D:/instantclient_11_2目录下新建目录network,在network目录下再新建admin目录,在admin目录下新建文件tnsnames.ora,使用文本编辑器打开写入如下内容: MWDB=(DESCRIPTION = 

oracle Plsql 运行update或者delete时卡死问题解决的方法

oracle Plsql 运行update或者delete时 遇到过Plsql卡死问题或者导致代码运行sql的时候就卡死. 在开发中遇到此问题的时候,本来把sql复制出来,在plsql中运行,Sql本身拼写无误,可是出现plsql卡死的情况, 在代码中,运行sql的地方打断点debug,发现运行sql,仍然没有响应.经过网上查资料,推測导致这样的情况的原因是 可能在PLSQL Developer运行update时没有commit,oracle将该条记录锁住了. 能够通过下面办法解决: 先查询锁定

MyEclipse+Weblogic+Oracle+PLSQL配置注意事项

Weblogic配置详情:<Weblogic安装与配置图文详解>Oracle+PLSQL配置详情:<PL/SQL访问远程Oracle服务器(多种方式)>MyEclipse配置:<Eclipse在开发Web项目时的配置优化>,<教你破解MyEclipse到2016年[图文详解]>虽然总结过以上开发环境的配置及优化,但是在使用的过程中依旧出现了或多或少.大大小小的问题,统一记录一下.1.MyEclipse导入工程.File-->Import-->Ge

Oracle/PLSQL: LENGTH Function-from cyber

Oracle/PLSQL: LENGTH Function This Oracle tutorial explains how to use the Oracle/PLSQL LENGTH function with syntax and examples. Description The Oracle/PLSQL LENGTH function returns the length of the specified string. Syntax The syntax for the LENGT

Oracle/PLSQL: LPAD Function-from cyber

Oracle/PLSQL: LPAD Function This Oracle tutorial explains how to use the Oracle/PLSQL LPAD function with syntax and examples. Description The Oracle/PLSQL LPAD function pads the left-side of a string with a specific set of characters (when string1 is

Oracle PLSQL 实例精解 中文版pdf

下载地址:网盘下载 <Oracle PLSQL 实例精解>是一本逐步分解的,详尽的pl/sql编程教程,使用真实场景的试验.范例和练习来介绍读者所需的pl/sql编程技能,涵盖oracle 11g的最新特性.作者的写作手法源自于在哥伦比亚大学教授pl/sql编程技术的经验,深度探索pl/sql编程技术,融合自己的最佳实践.使用本书,读者可以快速掌握pl/sql编程基本知识,并建立工程化的概念,是市面上难得的pl/sql教程.下载地址:网盘下载

oracle Plsql 执行update或者delete时卡死问题解决办法

oracle Plsql 执行update或者delete时 遇到过Plsql卡死问题或者导致代码执行sql的时候就卡死. 在开发中遇到此问题的时候,本来把sql复制出来,在plsql中执行,Sql本身拼写无误,但是出现plsql卡死的情况, 在代码中,执行sql的地方打断点debug,发现执行sql,仍然没有响应.经过网上查资料,猜测导致这种情况的原因是 可能在PLSQL Developer执行update时没有commit,oracle将该条记录锁住了. 可以通过以下办法解决: 先查询锁定记

Oracle/PLSQL CURSOR FOR Loop

Oracle/PLSQL: CURSOR FOR Loop The syntax for the CURSOR FOR Loop is: FOR record_index in cursor_nameLOOP      {.statements.}END LOOP; You would use a CURSOR FOR Loop when you want to fetch and process every record in a cursor. The CURSOR FOR Loop wil