- 1、本文档共74页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章_OraclePLSQL语言及编程--包、触发器、同义词、序列概要
5.8.4 修改序列 语法如下: ALTER SEQUENCE 序列名 …… 注意!可以修改的序列内容有如下限制: 不能修改序列的初值; 序列的最小值不能大于当前值; 序列的最大值不能小于当前值。 例如: ALTER SEQUENCE test_seq2 INCREMENT BY 3; 5.8.5 删除序列 语法如下: DROP SEQUENCE 序列名; 补充:异常处理 用户编写的PL/SQL块在执行过程中难免会发生一些错误或者异常情况。例如,除数为0或者无法建立到Oracle的连接等。这里涉及的错误并不是由于程序的语法错误引起的,而是因为程序在运行时引发的错误,这就是异常。 好的程序应该对可能发生的异常情况进行处理。 如果要在PL/SQL块中对异常进行处理,就需要在异常处理部分EXCEPTION块中编写处理程序。 异常处理 举例 例如: DECLARE width INTEGER; height INTEGER := 0; -此处给0,则后面执行块中代码会引发异常 area INTEGER :=6; BEGIN width := area/height; --引发异常 DBMS_OUTPUT.PUT_LINE( width = || width); EXCEPTION --异常处理 WHEN ZERO_DIVIDE THEN DBMS_OUTPUT.PUT_LINE(除数是0!请重新设置除数!); END; EXCEPTION块用于处理除以零的错误。程序在运行时,若异常发生,控制权将转交给EXCEPTION块,其中的WHEN子句负责检查与何种异常相匹配,然后执行匹配子句中的代码。 异常处理的基本语法 基本语法格式如下: EXCEPTION WHEN 异常名1 [OR 异常名2 …] THEN--异常列表 语句序列1; [WHEN 异常名3 [OR 异常名4 …] THEN 语句序列2; … [WHEN OTHERS THEN 语句序列n; END; 可以对多个异常分别进行不同的处理,也可以进行相同的处理。 异常的种类 分为三大类: 系统预定义的异常 Oracle为用户提供了大量的在PL/SQL中使用的预定义异常,以检查用户代码失败的一般原因。 它们都定义在Oracle的核心PL/SQL库中,用户可以在自己的PL/SQL异常处理部分使用名称对其进行标识。 对这种异常情况的处理,无需在程序中定义,由Oracle自动将其引发。 非预定义的异常 即其他标准的Oracle错误。对这种异常情况的处理,需要用户在程序中定义,然后由Oracle自动将其引发。 用户自定义异常 程序员可以把一些特定的状态定义为异常,在一定的条件下抛出,然后利用异常处理机制进行处理。 异常号 异常关键字 说明 ORA_1001 INVALID_CURSOR 非法游标操作 ORA_1012 NOT_LOGGED_ON 没连接到oracle ORA_1403 NOT_DATA_FOUND 没有找到数据 ORA_1722 INVALID_NUMBER 转换数字时失败 ORA_6500 STOREAGE_ERROR 内存不够 ORA_6501 PROGRAM_ERROR 内部PL/SQL错误 ORA_01422 TOO_MANY_ROWS SELECT INTO语句返回记录多于1条 ORA_06592 CASE_NOT_FOUND CASE语句中未找到匹配的WHEN子句,也没有默认的ELSE子句 ORA_06511 CURSOR_ALREADY_OPEN 试图打开一个已经打开的游标。 ORA_6502 VALUE_ERROR 截尾、算术错误 ORA_1476 ZERO_DIVIDE 被零除 系统预定义异常——常见异常 用户自定义异常 定义异常的语法: 异常名 EXCEPTION; 说明: 定义异常放在PL/SQL块的说明部分(DECLARE后) 。 例: ERR1 EXCEPTION; --定义一个异常ERR1 触发异常,语法: RAISE 异常名; 用户自定义异常 举例 例1:异常处理 实例 DECLARE a int:=0; b int; err1 exception; --异常说明 BEGIN b:=10/a; IF a=0 THEN raise err1; END IF; EXCEPTION WHEN zero_divide THE
您可能关注的文档
最近下载
- Q SCQ 005-2017_饲料级L-赖氨酸硫酸盐.pdf
- 初中物理学法指导.pptx VIP
- 2024年装饰装修施工员专业知识考试题库(浓缩500题).docx
- 大学生职业规划大赛《会计学专业》生涯发展展示PPT.pptx
- 物理学法指导.ppt VIP
- 公需课答案执行力与创新服务力题库.pdf
- 部编版四年级上册《麻雀》说课课件.pptx VIP
- 人教版(2019)选择性必修 第一册Unit 1 People of Achievement 单元集体备课教案.docx
- 湖南省长沙市天心区2024-2025学年九年级上学期开学考试语文试卷.docx VIP
- Q320582 ZD028-2020预应力混凝土实心方桩(螺锁式连接、焊接连接).docx
文档评论(0)