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
相关推荐
- **EXCEPTION块**:用于捕获和处理异常,可以定义自定义异常并使用RAISE语句抛出。 4. **PL/SQL与SQL的交互** - **嵌套SQL**:在PL/SQL代码中执行SQL查询,如SELECT INTO语句。 - **游标**:用于处理查询结果集...
手册会详细解释如何定义和使用预定义及自定义异常。 4. **数据库操作**:PL/SQL与Oracle数据库紧密集成,可以执行SQL查询、插入、更新和删除数据。手册会介绍如何在PL/SQL块中使用DML语句,并处理事务管理。 5. **...
PL/SQL预定义了一系列的异常,也可以自定义异常,并使用SQLCODE、SQLERRM等函数捕获错误信息。此外,PL/SQL还提供了RAISE_APPLICATION_ERROR过程来生成用户定义的异常。 游标用于遍历和操作查询结果集。PL/SQL提供...
PL/SQL是Oracle数据库的内置编程语言,由块构成,包括声明部分、执行部分和异常处理部分。块可以是匿名块(即直接在SQL*Plus或其他工具中编写的一次性执行的代码),也可以是存储过程、函数、触发器、包等可重用的...
1. **基础语法**:PL/SQL是过程化SQL,它包含声明部分、执行部分和异常处理部分。声明部分用于定义变量、常量和游标;执行部分包含了SQL语句和流程控制结构,如循环、条件判断等;异常处理部分则用于捕获和处理运行...
PL/SQL全称为“Procedural Language/Structured Query Language”,它提供了丰富的控制结构和异常处理机制,使得开发者能够编写复杂的数据库操作程序。 **PL/SQL的特点** 1. **集成性**:PL/SQL与Oracle数据库紧密...
11. **错误处理和日志记录**:有效地处理运行时错误,以及如何使用RAISE_APPLICATION_ERROR创建自定义异常。 12. **事务管理**:理解COMMIT,ROLLBACK和SAVEPOINT的概念,以及在PL/SQL中如何控制事务。 13. **...
7. **记录类型和变量**:PL/SQL支持自定义记录类型和变量,使得可以创建更贴近业务需求的数据结构。 这个"PL/SQL安装包"可能包含了以下组件: - **PL/SQL Developer**:一个强大的Oracle数据库开发工具,支持PL/...
1. **基础语法**:PL/SQL由声明部分、执行部分和异常处理部分组成。声明部分包括变量、常量、游标、表类型的声明;执行部分包含控制流语句(如IF-THEN-ELSIF, CASE, LOOP)以及SQL语句;异常处理部分则使用BEGIN......
8. **异常处理**:理解异常处理机制,包括预定义异常和自定义异常,以及如何使用RAISE、RAISE_APPLICATION_ERROR和WHENEVER语句来处理错误。 9. **事务管理**:学习如何使用COMMIT、ROLLBACK和SAVEPOINT语句来控制...
5. **异常处理**:PL/SQL的异常处理机制允许我们在遇到错误时执行特定的代码块,通过RAISE语句自定义异常,或者使用预定义的系统异常。 6. **事务管理**:在PL/SQL中,可以使用BEGIN、COMMIT、ROLLBACK语句进行事务...
- 异常类型:理解预定义的异常和用户自定义异常。 - WHEN OTHERS THEN:如何捕获未明确处理的异常。 - RAISE语句:如何引发异常。 4. **复合数据类型**: - 数组:声明和操作PL/SQL索引数组和关联数组。 - 表...
5. **异常处理**:PL/SQL的异常处理机制允许程序员预定义和自定义异常,通过EXCEPTION部分捕获和处理错误。 6. **游标**:游标用于处理结果集,允许在循环中逐行处理SQL查询的结果。 7. **动态SQL**:通过EXECUTE ...
《ORACLE PL/SQL程序设计第五版》是深入学习Oracle数据库编程的重要参考资料,它涵盖了PL/SQL语言的基础到高级概念,旨在帮助读者迅速提升在Oracle环境中编写高效、可靠的存储过程和函数的能力。这本书分为上、下两...
1. PL/SQL:PL/SQL是Oracle公司开发的一种过程化编程语言,结合了SQL的查询功能与传统的编程语言元素,如变量、流程控制结构和异常处理。在PL/SQL Developer中,你可以编写、编辑、测试和优化这些代码。 2. 集成...
2. **异常处理**:通过BEGIN...EXCEPTION块,PL/SQL提供了异常处理机制,能够捕获和处理运行时错误。 3. **数据库操作**:PL/SQL可以直接在SQL语句中执行DML(数据操纵语言)操作,如INSERT、UPDATE、DELETE,以及...
PL/SQL 异常处理是 PL/SQL 中的一种机制,用于处理程序中的异常。PL/SQL 提供了多种异常处理机制,例如使用 EXCEPTION 语句、RAISE 语句等。 二十、常用预定义异常 PL/SQL 提供了多种预定义异常,例如 ZERO_DIVIDE...
- `cah.pkg`:未提供具体描述,可能包含自定义的PL/SQL功能或业务逻辑。 通过这些示例,初学者可以深入了解PL/SQL的语法、流程控制和高级特性,并能实际操作数据库,提升数据库管理和开发能力。每个示例都应配有...
《ORACLE PL/SQL 程序设计(第五版)》是Oracle数据库开发领域的一本经典教程,专注于讲解如何使用PL/SQL这一强大的过程化语言进行数据库编程。这本书旨在帮助读者掌握PL/SQL的基本概念、语法和高级特性,以便在实际...
这本书是Oracle官方提供的基础指南,全面涵盖了PL/SQL的语法、语句、函数和异常处理。其中,你可以了解到声明变量、控制流程结构(如IF-THEN-ELSE、CASE、FOR循环)、游标、存储过程、触发器的创建和使用,以及如何...