- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络数据库 第十一讲
8.1 过程 开发一个存储过程或函数的目的是把一个PL/SQL块存进数据库中,并在以后重复使用。 8.1.1 创建过程的语法 CREATE [OR REPLACE] PROCEDURE 过程名 [(参数名 [ IN | OUT | IN OUT ] 数据类型. . .)] IS | AS [ 说明部分] BEGIN 语句序列 [ EXCEPTION 例外处理] END [过程名]; 8.1.2 创建过程的注意事项 当创建一个已存在的过程时,指明REPLACE选项。 关键字AS和IS均可,它们本身没有差别。 PL/SQL块可以从BEGIN开始,也可以从局部变量说明开始。 PL/SQL块不能以DECLARE开始。 用END或END 加上过程名作为PL/SQL块的结束标志。 8.1.3 过程的形式参数的三种模式 8.1.4 过程的运行、删除命令 运行过程的命令格式: SQL EXECUTE 过程名[(参数. . .)]; 8.1.5 过程的例子-无参数的过程 例题1: 创建一个无参数过程,记录用户名和当前日期 CREATE OR REPLACE PROCEDURE log_execution IS BEGIN INSERT INTO log_table(user_id,log_date) VALUES(user,sysdate); END; / 8.1.5 过程的例子-带参数的过程 例题2: 利用过程进行查询处理,获取一个雇员的姓名、工资、奖金信息。 8.1.5 过程的例子 例题2执行结果: 8.2 函数 8.2.1 函数与过程的比较 8.2.2 创建函数的语法 8.2.3 调用函数及删除函数的命令 8.2.4 使用函数的例子 8.2.1 过程与函数的比较 函数与过程基本类似,只不过调用时函数要用表达式方式,而过程只需调用过程名。 8.2.2 创建函数的语法 CREATE [OR REPLACE] FUNCTION 函数名 [(参数名 [ IN ] 数据类型. . .)] RETURN 数据类型 IS | AS [ 说明部分] BEGIN 语句序列 (RETURN表达式) [ EXCEPTION 例外处理] END [函数名]; 8.2.3 调用函数及删除函数的命令 不同环境,不同的调用方式: PL/SQL块或另外的存储过程或函数中直接调用 SQL*PLUS调用函数时,可以用表达式方式调用,也可以用全局变量接收其返回值。 SQLEXECUTE 全局变量 := 函数名(参数. . .) 8.2.4 使用函数的例子 例题: 利用函数实现一个查询,用以获取某雇员的工资。 8.3 包 8.3.1 包的组成 8.3.2 开发包 8.3.3 创建包说明和包主体的语法 8.3.4 包的管理 8.3.5 包的调用 8.3.6 开发包的例子 8.3.1 包的组成 包是一个可以将相关对象存储在一起的PL/SQL结构。包包含了两个分离的部件—包说明和包主体。将相关的若干程序结构组织到一起,用一个包来标识这个集合。 程序单元 描 述 ————————————————————— 过程 带有参数的程序 函数 带有参数的程序,该程序只返回一个值 变量 用于存储变化值的存储单元 游标 指向一个SQL语句的指针 常量 指向常数的指针 异常情况 标志一个异常情况 8.3.1 包的组成 包说明是操作接口,对应用可见;包主体是黑盒,对应用隐藏实现细节。 包由说明部分和包主体两部分组成,在包的说明部分说明的元素(过程、函数等)是公共元素,只在包主体中说明的元素是私有元素。 在包说明部分说明的所以对象在包的外面都是可用的并且是可见的,只需要指定该包的名字就可以访问该对象了。 8.3.2 开发包 按如下步骤开发一个包: 在一个文本文件中写入CREATE PACKAGE语句以说明一个包。 用CREATE PACKAGE BODY语句创建包体。 在SQL*PLUS或SVRMGR中运行这两个文件,以将包的源代码编译成编译代码(P_CO
文档评论(0)