`
greemranqq
  • 浏览: 976969 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

PL/SQL 自定义异常(五)

阅读更多

oracle 有时候 写过程会用到异常,我用得不多,这里简单介绍一下;

 

set serveroutput on;

DECLARE
  -- 声明一个异常
  my_exception exception;
  -- 定义异常名,错误码:-20000 .. -20999
  pragma exception_init (my_exception, -20020);
BEGIN
    -- 直接抛出异常,关键字raise + exception_name
    raise my_exception;
end;

 

-- 这个异常直接抛出,但是没有说明,不方便查看,也可以这样:


DECLARE
  v_name varchar2(100);
  -- 声明一个异常
  my_exception exception;
  -- 初始化这个异常,错误码:-20000 .. -20999
  pragma exception_init (my_exception, -20020);
BEGIN
    -- 有很多系统自定义的异常:比如no_data_found,可以尝试
    raise my_exception;
    exception
    when my_exception then
      dbms_output.put_line('这是测试的异常');  
    when others then
      dbms_output.put_line('异常!');  
end;

 

 

-- 当然我一般使用上抛的服务端的异常,不用声明

DECLARE
  v_num number;
BEGIN
    select count(*) into v_num from test_table  where user_id =1;
    if v_num >0 then
      -- raise_application_error 这是一个遗产过程,参数分别是:sqlcode,errmsg,[true,false]
      -- sqlcode 错误码-20000到-200999,msg 错误信息,不能超过2K
      -- 最后参数默认false, 用以判断是否保存在堆栈。
      raise_application_error(-20005, '测试异常!');
    end if;
end;

 

 

提示:1.这里只是简单说明了下,异常我用得不多,一般系统定义的就够了。可以定义一些参数,用于存放异常信息,并返回,在客户端进行反映

     2.两种异常其实是一个,系统定义了很多异常,可参考:http://cache.baiducontent.com/c?m=9d78d513d99e01fc09b3c3690d67c0171243f46

   82ba6d1020bd18449e3732d41501192ac57230777d2d27c1616af384beb802103461457c18cb8f95dabba85295f9f5134676bf75662d20edcca5124b137e658fede1ef0cb8425e0aec6949f0a5c9015433897f1f8471d449432a5033194f7d81e494810cdb16723e2072d629f204bbd5aaaa0743556dfa1c00a1b85798b3f508aaa34b33b16bf19&p=8d769a47838811a058ee973f53568d&newp=93628b0e85cc43ff57ed977d5b548c231610db2151d1d712&user=baidu&fm=sc&query=oracle+%C9%F9%C3%F7%D2%EC%B3%A3+%2C%CC%ED%BC%D3%D2%EC%B3%A3%D0%C5%CF%A2&qid=&p1=1

0
2
分享到:
评论

相关推荐

    oracle10g_pl/sql

    - **EXCEPTION块**:用于捕获和处理异常,可以定义自定义异常并使用RAISE语句抛出。 4. **PL/SQL与SQL的交互** - **嵌套SQL**:在PL/SQL代码中执行SQL查询,如SELECT INTO语句。 - **游标**:用于处理查询结果集...

    pl/sql最新中文手册

    手册会详细解释如何定义和使用预定义及自定义异常。 4. **数据库操作**:PL/SQL与Oracle数据库紧密集成,可以执行SQL查询、插入、更新和删除数据。手册会介绍如何在PL/SQL块中使用DML语句,并处理事务管理。 5. **...

    ORACLE PL/SQL从入门到精通

    PL/SQL预定义了一系列的异常,也可以自定义异常,并使用SQLCODE、SQLERRM等函数捕获错误信息。此外,PL/SQL还提供了RAISE_APPLICATION_ERROR过程来生成用户定义的异常。 游标用于遍历和操作查询结果集。PL/SQL提供...

    oracle pl/sql从入门到精通 配套源代码

    PL/SQL是Oracle数据库的内置编程语言,由块构成,包括声明部分、执行部分和异常处理部分。块可以是匿名块(即直接在SQL*Plus或其他工具中编写的一次性执行的代码),也可以是存储过程、函数、触发器、包等可重用的...

    Oracle PL/SQL实例编程(PL/SQL经典书籍)

    1. **基础语法**:PL/SQL是过程化SQL,它包含声明部分、执行部分和异常处理部分。声明部分用于定义变量、常量和游标;执行部分包含了SQL语句和流程控制结构,如循环、条件判断等;异常处理部分则用于捕获和处理运行...

    PL/SQL下载

    PL/SQL全称为“Procedural Language/Structured Query Language”,它提供了丰富的控制结构和异常处理机制,使得开发者能够编写复杂的数据库操作程序。 **PL/SQL的特点** 1. **集成性**:PL/SQL与Oracle数据库紧密...

    Oracle Database 12c PL/SQL开发指南 实例源代码

    11. **错误处理和日志记录**:有效地处理运行时错误,以及如何使用RAISE_APPLICATION_ERROR创建自定义异常。 12. **事务管理**:理解COMMIT,ROLLBACK和SAVEPOINT的概念,以及在PL/SQL中如何控制事务。 13. **...

    PL/SQL安装包

    7. **记录类型和变量**:PL/SQL支持自定义记录类型和变量,使得可以创建更贴近业务需求的数据结构。 这个"PL/SQL安装包"可能包含了以下组件: - **PL/SQL Developer**:一个强大的Oracle数据库开发工具,支持PL/...

    PL/SQL入门到精通书的源代码

    1. **基础语法**:PL/SQL由声明部分、执行部分和异常处理部分组成。声明部分包括变量、常量、游标、表类型的声明;执行部分包含控制流语句(如IF-THEN-ELSIF, CASE, LOOP)以及SQL语句;异常处理部分则使用BEGIN......

    Oracle PL/SQL学习官方教材

    8. **异常处理**:理解异常处理机制,包括预定义异常和自定义异常,以及如何使用RAISE、RAISE_APPLICATION_ERROR和WHENEVER语句来处理错误。 9. **事务管理**:学习如何使用COMMIT、ROLLBACK和SAVEPOINT语句来控制...

    oracle 中 pl/sql 只是学习方法

    5. **异常处理**:PL/SQL的异常处理机制允许我们在遇到错误时执行特定的代码块,通过RAISE语句自定义异常,或者使用预定义的系统异常。 6. **事务管理**:在PL/SQL中,可以使用BEGIN、COMMIT、ROLLBACK语句进行事务...

    pl/sql 学习资料

    - 异常类型:理解预定义的异常和用户自定义异常。 - WHEN OTHERS THEN:如何捕获未明确处理的异常。 - RAISE语句:如何引发异常。 4. **复合数据类型**: - 数组:声明和操作PL/SQL索引数组和关联数组。 - 表...

    PL/SQL development9.0.3

    5. **异常处理**:PL/SQL的异常处理机制允许程序员预定义和自定义异常,通过EXCEPTION部分捕获和处理错误。 6. **游标**:游标用于处理结果集,允许在循环中逐行处理SQL查询的结果。 7. **动态SQL**:通过EXECUTE ...

    ORALCE PL/SQL程序设计第五版

    《ORACLE PL/SQL程序设计第五版》是深入学习Oracle数据库编程的重要参考资料,它涵盖了PL/SQL语言的基础到高级概念,旨在帮助读者迅速提升在Oracle环境中编写高效、可靠的存储过程和函数的能力。这本书分为上、下两...

    pl/sql developer 用户指南中文版

    1. PL/SQL:PL/SQL是Oracle公司开发的一种过程化编程语言,结合了SQL的查询功能与传统的编程语言元素,如变量、流程控制结构和异常处理。在PL/SQL Developer中,你可以编写、编辑、测试和优化这些代码。 2. 集成...

    PL/SQL免安装版

    2. **异常处理**:通过BEGIN...EXCEPTION块,PL/SQL提供了异常处理机制,能够捕获和处理运行时错误。 3. **数据库操作**:PL/SQL可以直接在SQL语句中执行DML(数据操纵语言)操作,如INSERT、UPDATE、DELETE,以及...

    Oracle PL/SQL编程及最佳实践

    PL/SQL 异常处理是 PL/SQL 中的一种机制,用于处理程序中的异常。PL/SQL 提供了多种异常处理机制,例如使用 EXCEPTION 语句、RAISE 语句等。 二十、常用预定义异常 PL/SQL 提供了多种预定义异常,例如 ZERO_DIVIDE...

    PL/SQL examples

    - `cah.pkg`:未提供具体描述,可能包含自定义的PL/SQL功能或业务逻辑。 通过这些示例,初学者可以深入了解PL/SQL的语法、流程控制和高级特性,并能实际操作数据库,提升数据库管理和开发能力。每个示例都应配有...

    ORACLE PL/SQL 程序设计(第五版)

    《ORACLE PL/SQL 程序设计(第五版)》是Oracle数据库开发领域的一本经典教程,专注于讲解如何使用PL/SQL这一强大的过程化语言进行数据库编程。这本书旨在帮助读者掌握PL/SQL的基本概念、语法和高级特性,以便在实际...

    Pl/SQL programming 超全经典官方多本书籍资料

    这本书是Oracle官方提供的基础指南,全面涵盖了PL/SQL的语法、语句、函数和异常处理。其中,你可以了解到声明变量、控制流程结构(如IF-THEN-ELSE、CASE、FOR循环)、游标、存储过程、触发器的创建和使用,以及如何...

Global site tag (gtag.js) - Google Analytics