- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[计算机软件及应用]plsql编程
创建带输入参数和输出参数的存储过程 调用p4: declare a varchar2(10):=001; b number; c number; begin p4(a,b,c); dbms_output.put_line(b||--||c); end; 创建插入数据的存储过程 在S表中插入一条学生记录: Create or replace procedure p1(v_sno s.sno%type,v_sname s.sname%type,v_sdept s.sdept%type) as begin insert into s(sno,sname,sdept) values(v_sno,v_sname,v_sdept); commit; end; 创建删除数据的存储过程 删除考试成绩不及格学生的修课记录。 create or replace procedure p5 is begin delete from sc where grade60; commit; end ; 创建修改数据的存储过程 将指定课程的学分增加2分。 create or replace procedure p6(v_cname in c.cname%type) is begin update c set ccredit=ccredit+2 where cname=v_cname; commit; end ; 删除存储过程 删除存储过程: DROP PROCEDURE 存储过程名 An Introduction to Database System 4 触发器 触发器是一种特殊的存储过程。 触发器在数据库里以独立的对象存储,它与存储过程不同的是,存储过程通过其它程序来启动运行或直接启动运行,而触发器是由一个事件来启动运行。 即触发器是当某个ORACLE事件发生时系统自动地运行。并且,触发器不能接收参数。所以运行触发器就叫触发或点火(firing)。 ORACLE事件指的是对数据库表中的数据进行的INSERT、UPDATE及DELETE操作。 An Introduction to Database System 4 触发器 使用触发器可以实施更为复杂的数据完整性约束。 在同一数据库中的简单参照完整性常通过PRIMARY KEY约束和FOREIGN KEY约束来实现。但参照完整性约束不能参照其他数据库中的对象; 而可跨数据库的参照完整性约束只能通过触发器来实现。 CHECK约束只能引用当前列(列级CHECK约束)或当前表(表级CHECK约束)中的列值,而触发器则可引用其他表中的列值。 定义触发器 创建触发器语法格式 CREATE OR REPLACE TRIGGER trigger_name {BEFORE | AFTER} 触发事件 ON 表名 {FOR EACH ROW} [WHEN 触发条件] 触发动作体 定义触发器 其中: BEFORE 和AFTER指触发器的触发时序分别为前触发和后触发方式,前触发是在执行触发事件之前触发当前所创建的触发器,后触发是在执行触发事件之后触发当前所创建的触发器。 触发事件为INSERT、DELETE、UPDATE FOR EACH ROW选项说明触发器为行触发器。 WHEN 子句说明触发约束条件。 定义触发器 当触发器被触发时,要使用被插入、更新或删除的记录中的列值,有时要使用操作前、 后列的值。 :NEW 修饰符访问操作完成后列的值。 :OLD 修饰符访问操作完成前列的值。 只有在行触发器的PL/SQL块和WHEN 子句中可以:OLD和:NEW。在WHEN子句中则不能加冒号。 特性 INSERT UPDATE DELETE OLD NULL 实际值 实际值 NEW 实际值 实际值 NULL 定义触发器 创建触发器,实现如下约束:当删除S表中学生信息时,级联删除相应的选课信息。 create or replace trigger t2 before delete on s for each row begin delete from sc where sno=:old.sno; end ; 定义触发器 定义一个触发器,实现教师工资表sal_Teach的工资发生变化后就自动在工资变化表Sal_log中增加一条相应记录。 create or replace trigger t3 after update on sal_teach for each row begin
文档评论(0)