数据库应用技术第五章 面向过程SQL扩展课件.ppt

数据库应用技术第五章 面向过程SQL扩展课件.ppt

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库应用技术第五章 面向过程SQL扩展课件

数据库应用技术 第五章 面向过程的SQL扩展;内容概要;5.1 服务器端程序;5.1 服务器端程序;5.2 PL/SQL的基本语法;PL/SQL的基本规则;PL/SQL的基本结构-块结构;变量的定义与使用;变量的定义与使用;变量的定义与使用;变量的定义与使用;变量的定义与使用;变量的定义与使用;内嵌SQL;内嵌SQL;5.3 控制流语句;控制流语句-条件;控制流语句-循环;控制流语句-循环;控制流语句-其他;5.4 过程与函数;过程与函数-维护;过程与函数-维护;创建过程;CREATE FUNCTION f_1 (v_cid IN CHAR, v_date IN DATE) RETURN NUMBER AS DECLARE v_sum NUMBER; BEGIN SELECT SUM(dollars) INTO v_sum FROM orders WHERE cid = v_cid AND buy_date BETWEEN v_date - 365 AND v_date; RETURN v_sum; END;;复杂过程举例;内部子过程 在过程或函数的DECLARE部分定义,只供该过程或函数调用 不能被外部使用 声明时不使用关键字CREATE 放在DECLARE中的最后部分 先声明后使用,可前向声明。 不单独存放在数据库中;内部过程举例;SQL*PLUS 中,使用EXECUTE命令。 在其他PL/SQL程序中,直接写出过程及参数 CREATE PROCEDURE p_2 AS BEGIN DECLARE v1 NUMBER(10); BEGIN p_1(‘C001’, v1, SYSDATE); //全局过程p_1 END; END;;位置表示 credit_acct (acct, amt); 名称表示 credit_acct(amount = amt, acct_no = acct); credit_acct(acct_no = acct, amount = amt); 混和表示 credit_acct(acct, amount = amt); 如果默认值在前,后面有非默认值,必须使用名称调用方式。;;包(Package);5.5 游标;游标的作用;使用游标;游标声明;DECLARE CURSOR c1 IS SELECT sid, sname, salary FROM salers WHERE salary 2000; CURSOR c2 RETURN salers%ROWTYPE IS SELECT * FROM salers WHERE salary 2000; CURSOR c3 (v_salary) IS SELECT sid, sname, salary FROM salers WHERE salary v_salary; ;使用游标;使用游标;举例:计算方差;游标FOR循环;举例:计算方差;游标属性;修改游标中数据;5.6 错误与异常处理;错误与异常;两种处理机制;两种处理机制;错误与异常处理;错误分类和定义;一些预定义错误;用户自定义错误;异常处理语法结构;异常处理过程;异常处理举例;??常处理举例;5.7 触发器;触发器是一种特殊的存储过程。它不是由用户显式调用的,而是当满足某个触发事件时自动执行的。 触发器包括:触发事件,触发器约束和触发器动作。 触发事件:DML语句,DDL语句,数据库系统事件和用户事件。 触发约束:在何种条件下触发。 动作:一个PL/SQL程序。;触发器的用途 高级的存取限制(如在特定时间修改) 复杂的数据一致性检查 自动产生关联的数据 自动建立事件日志 限制 为全局性的操作定义触发器 尽量使用完整性约束 尽量不使用多重触发器、不要产生递归 不要过长(60行);CREATE [OR REPLACE] TRIGGER 触发器名 BEFORE|AFTER|INSTEAD OF DELETE|INSERT| |UPDATE [OF 列名] ON 表名 | 视图名 [REFERENCING OLD AS 旧名 | NEW AS 新名] [FOR EACH ROW|STATEMENT] [WHEN (条件表达式)] PL/SQL语句块;;触发器;BEFORE和AFTER。BEFORE用于可能修改语句带来的数值的情况。 条件谓词:INSERTING

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档