- 3
- 0
- 约3.94千字
- 约 28页
- 2017-05-28 发布于上海
- 举报
ZTESOracle创建包和触发器十五讲ppt课件
创建包和触发器 目标 在本课中您将学会以下内容: 创建包 使用包 触发器的用途 创建各种类型的触发器 触发器的使用限制 INSTEAD-OF触发器 包 存储在服务器端的程序库 包含: 全局变量的声明 游标的定义 过程 函数 包分为:系统内置的包和用户自定义的包 Oracle提供的内置包 DBMS_ALERT DBMS_LOCK DBMS_SESSION DBMS_OUTPUT HTP UTL_FILE UTL_MAIL DBMS_SCHEDULER 包和库的区别 库必须要显式地链接到应用程序中去,而包是随时可以被调用的 库总是运行在客户端 包总是运行在服务器端 包的组成 定义部分: 用于声明所有的公共变量,游标,过程和函数 包体部分: 过程和函数的代码 基本原理: 定义部分对用户是可见的,说明如何使用包 包体部分是不可见的,用户不会关心具体的代码 包的组成 包说明 包体 过程、函数声明 变量 过程A主题定义 BEGIN … END; 过程B主体定义 变量 变量 Public Private 包的创建与执行过程 spec.sql 1 2 3 编辑 载入 创建 (编译和存数) 执行 使用 SHOW ERRORS调试错误 4 body.sql 主体 说明 在SQL*Plus中创建包的定义 CREATE OR REPLACE PACKAGE package_name IS --public variables variable_name datatype; --program units PROCEDURE procedure_name (parameter_list); FUNCTION function_name (parameter_list); END; CREATE OR REPLACE PACKAGE BODY package_name IS private variable declarations program unit blocks END; 创建包规范 创建包体 在SQL*Plus中创建包的定义 在SQL*Plus中创建包 调用包中的程序单元 在过程名前加上其所在的包和名称 例如: PACKAGE_NAME.program_unit_name(parameter_list); DBMS_OUTPUT.PUT_LINE(‘Hello World’); 程序的重载 重载 多个程序单元具有相同的名称,但接收不同数据和类型的参数 允许用户使用相同的命令,通过提供不同的参数,完成不同的调用请求 数据库触发器 触发器是特定事件出现的时候,自动执行的代码块。类似于存储过程,存储过程是由用户或应用程序显示调用的。而触发器不能直接调用。 触发器的分类: DML触发器 语义级触发器 行级触发器 INSTEAD OF 触发器 用户事件触发器 系统条件触发器 触发器的用途 确保相关的操作同时完成: 卖出一件商品,修改其库存 创建类似于审计用的表记录: 记录是谁修改了学生的等级以及什么时候作的修改 创建数据库DML触发器 代码类似于PL/SQL程序块 数据库触发器不能接受参数 定义触发器,必须指明: 触发器触发的事件语句 INSERT,UPDATE,DELETE 触发时机 事前触发还是事后触发 触发等级 语句级还是行级 触发器的时序 事前触发:触发器代码在语句执行前先执行 例如:对于审计信息,在信息被修改之前先把它记录下来 事后触发:触发器代码在语句执行后才执行 例如:在商品卖出后再修改其库存 触发器的级别 行级触发器:对于语句所涉及到的每一行都执行触发器代码 例如:对于每一件卖出的商品(一件商品对应表中的一行)都要修改其库存 语句级触发器:不管语句涉及到多少行,触发器代码只执行一次 例如:对于审计信息,只关心是谁修改了表中的数据,而不关心他修改了多少数据 创建触发器 CREATE OR REPLACE TRIGGER trigger_name [BEFORE|AFTER] [INSERT|UPDATE|DELETE] ON table_name [FOR EACH ROW] [WHEN (condition)] BEGIN trigger body END; 默认是语义级 相关限制 只能在自己创建的表上创建触发器 必须具有CREATE TRIGGER系统权限 不能在触发器中使用COMMIT语句 行级触发器的语法 WHEN (条件表达式): 是可选的 指明符合触发器执行的行所需要满足的条件 引用域的旧值和新值: :OLD.字段名 :NEW.字段名 INSTEAD-OF触发器 正常情况下,用户不能向多表连接的复杂视图中插入数据,也不能修改或删除这类视图中的数据 当用户发出一个基于复杂
您可能关注的文档
- propsal for cocacola christmas display(凯德效果材质尺寸)4.pptx
- QC知识培训.ppt
- QC小组基础教材2新版.ppt
- QC七大手法.ppt
- QC层别法一看就会的教程.ppt
- proe曲面造型设计及参数化建模教程.ppt
- PVD知识整理.pptx
- qm7工序能力.ppt
- qm3质量管理和质量保证国际标准.ppt
- qm4老7种质量管理工具和方法.ppt
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- BSC-1100ⅡA2-X和1500A2生物安全柜产品使用说明书.pdf VIP
- 2026年江西青年职业学院单招职业技能考试必刷测试卷附答案.docx VIP
- 高中物理校本课程教材.docx VIP
- 南京医科大学-药理学-期末复习资料汇总.pdf VIP
- 2025年江西青年职业学院单招职业技能考试必刷测试卷附答案.docx VIP
- 北京航空航天大学《飞行器设计》期末考核试卷(含答案).docx VIP
- 第七章 part3幼儿园教职工配备标准 (暂行)(课件)2024年《学前教育政策法规》同步教学(高教版).pptx VIP
- 2024年山东职业学院高职单招(英语/数学/语文)笔试历年真题摘选含答案解析.docx
- 复旦大学保险公司财务管理第五章 保险公司财务比率分析.ppt VIP
- 患者十大安全目标(2025)PPT课件.pptx VIP
原创力文档

文档评论(0)