- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
plsql上课PPT
包 包可将一些有联系的对象放在其内部。任何能在块定义部分出现的对象都可以在包中出现。这些对象包括存储过程、函数、游标、自定义的类型(PL/SQL表和记录)和变量。我们可以在其它的PL/SQL块中引用包中的这些对象,也就是说。包为PL/SQL提供了全局变量。 包的定义 一个包由两个独立的部分组成---包头和包体。各部分被单独地存放在数据字典中。定义一个包,要分别定义包头和包体。 定义包头 语法: CREATE [OR REPLACE] PACKAGE [schema.] package {IS|AS} pl/sql_package; 其中PACKAGE 是包的名称,pl/sql_package可以是存储过程、函数、变量、类型、异常以及游标的定义。 注意点:存储过程或函数必须在包头中预定义。 定义包体 包体是一个数据字典对象。只有在包头成功编译后,包体才能被编译。包体只包含包头中已预定义的子程序的代码。在包头中定义(不是预定义)的对象可以直接在包体中使用,不必再在包体中定义。 语法: CREATE [OR REPLACE] PACKAGE BODY [schema.] package {IS | AS} pl/sql_body; 包的初始化 与变量类似,包也可被初始化。中是初始化部分在包体的最后部分被定义。语法: CREATE OR REPLACE PACKAGE BODY package{IS|AS} --包体中过程与函数的定义部分。 BIEGN Initialization_code; END[package] 包的使用 1.包中对象的引用 在包中定义的任意对象都可在包外使用,只是在引用该对象前用包名做前缀。 declare v_name students.first_name%type; begin v_name := students_inf.get_student_name(10001); dbms_output.put_line(v_name); end; 重载包中的子程序 在包的内部,存储过程和函数都可以被重载,这意味着有多个存储过程或函数可以使用同一个名称,但参数不能相同。这样允许用不同的参数调用同一个名字的过程或函数。 异常处理 异常分为预定义异常和用户自定义异常。预定义异常是由系统定义的异常。由于它们已在STANDARD包中预定义了,因此,这些预定义异常可以直接在程序中使用,而不必在定义部分声明。而用户定义异常则需要在定义部分声明 后才能在可执行部分使用。用户自定义异常对应的错误不一定是ORACLE错误,例如 ,它可能是一个数据错误。 异常的声明 用户自定义异常必须先在定义部分声明,然后再使用,这一点与变量声明类似。用户自定义异常声明的语法如下: EXCEPTION exception 如果要处理没有与预定义异常对应的ORACLE的错误时,则需要为这些ORALCE错误声明相应的用户 自定义异常。 PRAGMA EXCEPTION_INIT(exception_name,oracle_error_number); 异常的产生 当与预定义异常对应的错误出现时,则该预定义异常就会自动产生。而一个用户自定义异常通常是由RAISE语句来产生(由EXCEPTION_INIT编译指令声明的用户自定义异常可通过对应ORACLE错误的出现面产生)。如果需要的话,预定义异常也可使用RAISE语句来产生。 SQLCODE和SQLERRM函数 由于OTHERS 子句处理WHEN子句没有处理异常,所以在OTHERS子句中处理的异常是未知的,我们可以使用SQLCODE和SQLERRM函数来确定异常对应的错误代码和信息。 练习1 用IF 语句 定义一个学号 变量 V_ID 给V_ID 的初始值为10006 如果FIRST_NAME = DAVID 显示出名字 和学号 否则 显示 10006 的学号的学生不为DAVID ------------------------- 用WHILE LOOP 循环 取得所有学生的信息(学号 和 姓名 ),学号用最大,最小函数来取。 * if c_students%ISOPEN then dbms_output.put_line(true); ELSE dbms_output.put_line(false); end if; * declare --声明一个变量,这个变量用来接收游标返回的结果集; v_name students.first_name%type; v_id students.id%type; v_line varchar2(100); --声明游标; CURSOR c_sutdent is
您可能关注的文档
- MPLS CSPF工作原理详解和相关实验.doc
- MP-A-01操作说明书1- English.doc
- MS SQL Server2005数据类型.doc
- MS Office 2007 筛选复制及筛选修改.docx
- MSML中文版.doc
- msp430测温程序.doc
- MTK常用命令.doc
- MT6253平台介绍和关键设计指南.ppt
- MUJU考试卷(B).doc
- MUN会前准备.ppt
- 建设工程质量安全管理标准化图集(安全篇2024版)ppt230页.pptx
- 《油气储存企业安全风险评估细则(2025年修订)》解读.pptx
- 2025年《危大工程专项施工方案严重缺陷清单专题培训》ppt120页_1230.pptx
- 中建分部分项检验批划分方案、资料目录策划编制要点ppt75页.pptx
- 某项目智慧工地示范项目应用成果介绍75页_5843.pptx
- 2025年中国风筝无人机LED夜光编队编程师应聘面试模拟题及答案.doc
- 2025年中国鞍钢集团招聘笔试题库附答案.doc
- 2025年中国鞍钢集团招聘面试预测题及答案.doc
- 临床器械实验培训试题及答案2025年版.docx
- 中石化《两个责任》解读分析.ppt
最近下载
- 优质教师教学常规培训课件.pptx VIP
- 道路维修工程规划与施工组织设计.docx VIP
- 第三节 直译和意译.pptx VIP
- 《21世纪的管理挑战》彼得·德鲁克.pdf VIP
- DBJ_T03-113-2019:岩土工程勘察规范.pdf VIP
- Conservation of Resources A New Attempt at Conceptualizing Stress资源保护:概念化压力的新尝试.pdf VIP
- 基于拉曼光谱无创血糖检测技术研究.pdf
- 第4-反应堆压力容器与堆芯基础知识.ppt VIP
- 五育并举教师培训.pptx VIP
- 2025年福建福州市鼓楼区城投公司招聘笔试参考题库含答案解析.pdf
文档评论(0)