- 1、本文档共47页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四讲 PL/SQL应用 本章学习目标 本章将讲述PL/SQL的过程、函数、触发器及包的概念,以及如何设计和调试应用。 4.1 过程 4.2 函数 4.3 包 4.4 PL/SQL程序的开发与调试 4.5 触发器 4.1 过程 4.1.1 过程的创建 4.1.2 过程的调用 4.1.3 过程的释放 4.1.1 过程的创建 CREATE 表示在数据库中生成独立的存储过程; CREATE OR REPLACE表示修改数据库中已有的存储过程。 局部声明不需用DECLARE 传参方式 (1)In 表示输入给过程的参数。 (2)Out 表示参数在过程中将被赋值,可以传给过程体的外部。 (3)in out 表示该类参数既可以向过程体传值,也可以在过程体中赋值,以便向过程体外传值。 实例 CREATE PROCEDURE raise_salary (emp_id INTEGER, amount REAL) IS current_salary REAL; salary_missing EXCEPTION; BEGIN SELECT sal INTO current_salary FROM emp WHERE empno = emp_id; IF current_salary IS NULL THEN RAISE salary_missing; ELSE UPDATE emp SET sal=sal+amount WHERE empno= emp_id; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN INSERT INTO emp_audit VALUES(emp_id, ‘No such employee’); WHEN salary_missing THEN INSERT INTO emp_audit VALUES(emp_id, ‘salary is null’); END raise_salary 4.1.2 过程的调用 用EXECUTE命令 SQL EXECUTE proc_name(par1,par2…); 在PL/SQL程序块内部调用 DECLARE par1,par2; BEGIN proc_name(par1,par2…); END; 在调用前要声明变量par1,par2 4.1.3 过程的释放 当某个存储过程不再需要时,应将其从内存中删除,以释放它占用的内存资源。释放过程的语句格式如下: SQLDROP PROCEDURE proc_name; 4.2 函数 4.2.1 函数的创建 4.2.2 函数的调用 4.2.3 函数的释放 4.2.1 函数的创建 4.2.2 函数的调用 4.2.3 函数的释放 当函数不再使用时,要用DROP命令将其从内存中删除,例如: SQLDROP FUNCTION Hire_Day ; 4.3 包 4.3.1 包的定义和生成 4.3.2 包的访问 4.3.3 为什么使用包? 4.3.1 包的定义和生成 包是一种模式对象,它将PL/SQL的类型、函数、子程序等逻辑上组织在一起。 一个包中可能包含如下的元素: 过程(procedure) 函数(Function) 变量(Variable) 游标(Cursor) 常量(Constant) 意外情况(Exception) 包由说明部分和包体两部分组成。 在包的说明部分说明的元素(过程、函数等)是公共元素。 只在包体中说明的元素是私有元素 包的说明 注意: 在包的声明部分,游标由以下方式声明 CURSOR cursor_name [(parameter[,parameter]…)] RETURN return_type 声明部分的定义仅对应用的数据库模式有效,在应用范围内可见;对包而言是全局定义,可在包的任意部分使用。 包体 CREATE [OR REPLACE] PACKAGE BODY<包名> IS|AS 游标、函数、过程的具体定义; END<包名>; 实例 CREATE PACKAGE emp_action AS /* Declare externally visible types, cursor, exception.*/ TYPE EmpRecTyp IS RECORD (emp_id
您可能关注的文档
- 102-数控加工与编程技术浙江师范大学交通学院二00九年.ppt
- 103-OLED 结构的简介.ppt
- 105-第11章 计算机的维护和维修.ppt
- 107-口腔基本设备简介.ppt
- 108-第十二章 工序(过程)能力分析.ppt
- 111-解斜三角形应用举例(一).ppt
- 116-搓丝板选材及工艺制定.ppt
- 117-教学情境6 .蔬菜制品加工.ppt
- 119-第7章 筹资决策.ppt
- 209-课题:花的结构教材:初中生物第一册第七章单位.ppt
- 2024年中国钽材市场调查研究报告.docx
- 2024年中国不锈钢清洗车市场调查研究报告.docx
- 2024年中国分类垃圾箱市场调查研究报告.docx
- 2024年中国水气电磁阀市场调查研究报告.docx
- 2024年中国绿藻片市场调查研究报告.docx
- 2010-2023历年初中毕业升学考试(青海西宁卷)数学(带解析).docx
- 2010-2023历年福建厦门高一下学期质量检测地理卷.docx
- 2010-2023历年初中数学单元提优测试卷公式法(带解析).docx
- 2010-2023历年初中毕业升学考试(山东德州卷)化学(带解析).docx
- 2010-2023历年初中毕业升学考试(四川省泸州卷)化学(带解析).docx
文档评论(0)