- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9.7.3 创建程序包的实例 SQLCREATE OR REPLACE PACKAGE Body my_arithmetic AS /*my_add实现加法运算*/ FUNCTION my_add(x IN NUMBER,y IN NUMBER) RETURN NUMBER IS BEGIN RETURN x + y ; END my_add; /*my_subtract实现减法运算*/ FUNCTION my_subtract (x IN NUMBER,y IN NUMBER) RETURN NUMBER IS BEGIN RETURN x – y ; END my_subtract; 9.7.3 创建程序包的实例 /*my_multiply实现乘法运算*/ FUNCTION my_multiply (x IN NUMBER,y IN NUMBER) RETURN NUMBER IS BEGIN RETURN x * y ; END my_multiply; /*my_divide实现除法运算*/ FUNCTION my_divide (x IN NUMBER,y IN NUMBER) RETURN NUMBER IS BEGIN RETURN x / y ; END my_divide ; END; / 其中,包体部分是四个函数的实现代码。 9.7.3 创建程序包的实例 下面是对my_arithmetic包的使用。 SQLDECLARE x NUMBER; y NUMBER; BEGIN x:=10; y:=5; DBMS_OUTPUT.PUT_LINE( X= || x || ,Y= || y); DBMS_OUTPUT.PUT_LINE( X+Y= || my_arithmetic. my_add (x,y)); DBMS_OUTPUT.PUT_LINE( X-Y= || my_arithmetic. my_subtract (x,y)); DBMS_OUTPUT.PUT_LINE( X*Y= || my_arithmetic. my_multiply (x,y)); DBMS_OUTPUT.PUT_LINE( X/Y= || my_arithmetic. my_divide (x,y)); END; 9.7.3 创建程序包的实例 执行结果如下: X=10 ,Y=5 X+Y= 15 X-Y= 5 X*Y= 50 X/Y= 2 PL/SQL 过程已成功完成。 9.8 异常处理 PL/SQL程序运行期间经常会发生各种各样的异常,一旦发生异常,如果不进行处理,程序就会中止执行。如果在PL/SQL程序中定义了异常,当PL/SQL程序检测到一个异常时,程序转入相应异常处理部分进行处理。异常处理机制可以使程序变得更为健壮。 异常处理部分一般放在PL/SQL程序的后半部分,其基本结构如下: EXCEPTION WHEN 异常1 [ OR 异常2 ] THEN 语句组; …… WHEN 异常n-1 [OR 异常n ] THEN 语句组; WHEN OTHERS THEN 语句组; 其中, when others then子句指异常如果不在前面所列的异常处理之中,将进入OTHERS异常处理程序段。 9.8 异常处理 Oracle系统中的异常分为系统预定义异常和用户自定义异常。系统预定义异常就是系统为经常出现的一些异常定义了异常关键字,如被零除或内存溢出等。系统预定义异常无需声明,当系统预定义异常发生时,Oracle系统会自动触发,只需添加相应的异常处理即可。 用户自定义异常是用户在任何PL/SQL程序块、子程序或包中定义的异常,声明用户自定义异常需在PL/SQL程序块的声明部分中进行声明。 9.8.1 系统预定义异常 异 常 名 称 异 常 号 SQLCODE 说 明 ACCESS_INTO_NULL ORA-06530 -6530 访问没有初始化的对象 CASE_NOT_FOUND ORA-06592 -6592 没有适合Case结构的WHEN分支,或ELSE分支 COLLECTION_IS_NULL ORA-06531 -6531 访问没有初始化集合的方法 CURSOR_ALREADY_OPEN ORA-06511 -6511 打开一个已经打开的游标 DUP_VAL_ON_INDEX ORA-00001 -1 违反了表的惟一行约束条件 INVALID_CURSOR ORA-01001 -1001 无效游标 INVALID
您可能关注的文档
最近下载
- 正方体的11种展开图--A4直接打印版.docx VIP
- 新能源汽车动力电池管理及维护技术PPT课件.pptx VIP
- 【中职】高教2023版 世界历史第2课 古代希腊罗马 PPT课件.pptx VIP
- DB32_T4725-2024池塘养殖尾水生态处理技术规范.pdf VIP
- Kaierda凯尔达 KC20机器人操作说明书.pdf VIP
- 第四章陈述性知识课件.ppt VIP
- 锚固剂参数、规格与安装说明.doc VIP
- 2025年安徽省第七届粮食行业职业技能大赛(粮油保管员赛项)备考试题库资料(含答案).pdf VIP
- “巴渝工匠”杯重庆市粮食行业职业技能竞赛_(粮油)仓储管理员备赛试题库资料(含答案).pdf
- 最新锅炉工资格完整考试题库必背100题(含答案) .pdf VIP
文档评论(0)