- 1、本文档共103页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
可使用EXECUTE IMMEDIATE语句实现动态SQL EXECUTE IMMEDIATE dynamic_string [ INTO { defin_variable [, define_variable] …… | record } ] [ USING [IN | OUT | IN OUT ] bind_argument,……]; 8.常用内置程序包 例9.34 动态SQL的综合例子。 EXA_09_34.SQL DBMS_OUTPUT包:常用于输出调试信息 PUT(a varchar2) PUT_LINE(a varchar2) NEW_LINE GET_LINE(line out varchar2, status out integer) GET_LINES(lines out chararr, numlines in out integer) ENABLE/DISABLE SET SERVEROUTPUT ON 例9.35 DBMS_OUTPUT包子程序使用测试。 EXA_09_35.SQL UTL_FILE包 8.常用内置程序包 包中子程序 fopen get_line new_line put,putf,put_line fclose is_open fflush fclose_all 例9.36 创建部门薪资报表,结果保存到文件d:\data\dept_wage_rpt.txt中。 EXA_09_36.SQL 包中预定义例外 (1) INVALID_PATH (2) INVALID_MODE (3) INVALID_FILEHANDLE (4) INVALID_OPERATION (5) READ_ERROR (6) WRITE_ERROR (7) INTERNAL_ERROR 初始化参数UTL_FILE_DIR指定访问文件的位置 DBMS_DDL包 供了执行ALTER和ANALYZE操作的能力 ALTER_COMPILE语法 ALTER_COMPILE(object_type,owner,object_name); ANALYZE_OBJECT语法 ANALYZE_OBJECT(object_type,owner,name,method); 8.常用内置程序包 Oracle提供了数量众多的实用程序包 创建各包的脚本位于 ORACLE_HOME\RDBMS\ADMIN 数据库触发器是存储在数据库中的PL/SQL程序,由与表、视图、方案或数据库等相关的事件触发 触发器分为两大类 (1) 应用触发器:由特定的应用程序事件触发 (2) 数据库触发器:由数据库中的数据操纵事件或由在方案或数据库上发生的系统事件触发 数据库触发器分为 (1) 对表执行DML操作触发的DML触发器 (2) 对视图执行DML操作转化为基表DML操作的INSTEAD OF触发器 (3) 数据库系统中的DDL事件触发器 (4) 与方案用户的登录/退出等事件相关的触发器 9.8 数据库触发器 如触发器建立在方案用户上,则仅触发在该方案用户的相关表或事件上定义的触发器 如触发器建立在数据库一级,则触发器对所有用户引发的相关事件都有效 语句触发器:触发事件发生后只执行一次触发器主体代码 (不管该触发事件影响到多少记录行) 行触发器:对符合条件的每一行均要执行一次触发器主体代码 1.数据库触发器概述 (1) 为执行相关的操作而使用触发器 (2) 为集中进行的全局性处理而使用触发器 (3) 不要为Oracle已经实现的功能设计触发器 (4) 如果触发器代码很长,应将处理代码设计成子程序,然后在触发器中调用它们 (5) 过度使用触发器将会导致复杂的互相依赖 (6) 应按照下述顺序来考虑实现一个具体的业务逻辑 首先考虑使用Oracle数据库提供的完整性约束,如Primary Key、Check等来实现最基本的完整性控制 其次考虑在数据库中建立触发器或在中间层应用中使用Servlet或JavaBean实现部分业务逻辑 最后考虑采用某个开发工具,实现上述规则中不能实现的表示层逻辑 2.触发器设计指南 创建DML触发器 (1) 触发事件:INSERT、UPDATE和DELETE中 (2) 触发事件的作用对象:指定表/视图和表的某些列 (3) 触发器主体执行的时机:BEFORE、AFTER (4) 触发器的类型:行触发器、语句触发器 (5) 触发动作的条件:WHEN条件子句 (6) 如何区分新老记录:NEW、OLD (7) 触发器主体:满足触发条件后的动作,为PL/SQL块 DML触发器需响应顺序 (1) BEFORE 语句触发器 (2) BEFORE行触发器 (3) AFTER行触发器 (4) AFTER语句触发器 3.DML触发器 创建
文档评论(0)