有关Oracle中函数与触发器的内容,在数据库中定义并使用存储过程、函数、触发器,可以提高用户访问数据库的效率。
数据库中函数包含四个部分:声明、返回值、函数体和异常处理。
1createorreplacefunctiongetname(snovarchar2 )
2returnvarcharis
3namevarchar(12 );
4begin
5selectenameintonamefromempwhereempno= sno;
6return name;
7 exception
8 ...
12end ;
13
2returnvarcharis
3namevarchar(12 );
4begin
5selectenameintonamefromempwhereempno= sno;
6return name;
7 exception
8 ...
12end ;
13
触发器是一种特殊的存储过程,类似于其它编程语言中的事件函数,允许为 INSERT、UPDATE、DELETE 创建触发器,当在表(视图)中插入、更新、删除记录(前、后)时,触发一个或一系列 T-SQL 语句。
创建在 STUDENT 表上的插入触发器,当在 STUDENT 表中插入数据时候触发器将被触发,执行体将被执行
插入触发器
1createorreplacetrigger tg_insert
2beforeinsertonstudent -- 可设置在插入前或插入后
3begin
4 ...
5end ;
更新触发器
8 createorreplacetrigger tg_update
9afterupdateon student
10foreachrow
12begin
13 ...
14END ;
15
1createorreplacetrigger tg_insert
2beforeinsertonstudent -- 可设置在插入前或插入后
3begin
4 ...
5end ;
更新触发器
8 createorreplacetrigger tg_update
9afterupdateon student
10foreachrow
12begin
13 ...
14END ;
15
触发器两个特殊行级变量: :New 新值 和 :Old 旧值 分别代表更新值,被更新的值
1createorreplacetrigger tg_insert
2afterupdateon student
3for eachrow
4when(:old.sex=’j’) -- 当old.sex为J时候才执行触发器内容
5begin
7DBMS_OUTPUT.PUT_LINE(:new.stuname||''|| :old.stuname);
8DBMS_OUTPUT.PUT_LINE(:new.sex||''|| :old.sex);
9end ;
10
2afterupdateon student
3for eachrow
4when(:old.sex=’j’) -- 当old.sex为J时候才执行触发器内容
5begin
7DBMS_OUTPUT.PUT_LINE(:new.stuname||''|| :old.stuname);
8DBMS_OUTPUT.PUT_LINE(:new.sex||''|| :old.sex);
9end ;
10
判断复合型触发器
1createorreplacetrigger trgstudeng
2beforeinsertorupdateordeleteon student
3for eachrow
4begin
5ifinsertingthen
6 ...
8endif ;
9ifdeletingthen
10 ...
12endif ;
13 exception
14 ...
16END ;
17
2beforeinsertorupdateordeleteon student
3for eachrow
4begin
5ifinsertingthen
6 ...
8endif ;
9ifdeletingthen
10 ...
12endif ;
13 exception
14 ...
16END ;
17
触发器功能强大,可以实现许多复杂的功能,但如果滥用会造成数据库及应用程序的维护困难。
相关推荐
存储过程、函数、触发器和包
oracle pl/sql 存储过程和函数与触发器
oracle存储过程、函数、触发器应用举例oracle存储过程、函数、触发器应用举例
oracle存储过程、函数和触发器 比较基础的源代码
oracle知识点笔记,语法,触发器,存储过程,存储函数,流程控制,游标,异常处理,记录类型,视图,控制用户权限,高级子查询,set运算符,基本的sql_Select语句等等
这些例子是我自己也是在学习的时候写的。。希望与同水平的人有用。
title:[Oracle]--触发器加密函数利用数据库触发器和函数给数据库内容加密。加密函数一例:给数据库183添加加密函数YOURPASSWORD:手动设置
oracle PL_SQL编程 创建存储过程、函数、触发器等
很早就想自己写写Oracle的函数和触发器,最近一个来自课本的小案例给了我这个机会。现在把我做的东西记录下来,作为一个备忘或者入门的朋友们的参考。 案例介绍: 招投标管理系统(数据库设计)。 数据表有...
Oracle数据库--存储过程、函数、触发器和包.pptx
1-oracle培训整套教程(存储过程-函数-触发器,异常处理,游标.存储包)
oracle高级语法(事物、函数、存储过程、触发器、异常)[参照].pdf
oracle存储过程和触发器
触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是由一个事件来启动运行。即触发器是当某个事件发生时自动地隐式运行。并且,触发器不能接收参数...
12oracle的PL/SQL编程-函数.包.触发器 PPT 12oracle的PL/SQL编程-函数.包.触发器 PPT
关于数据库的部分,个人觉得还是买两本靠谱的书看几个小时学好,其实看看书,这TMD太简单了,当然说它简单只是停留在能用的基础上~~什么时候度不能小觑技术技术这个东东
日常管理维护一个oracle数据库服务器的时,经常会碰到修改view,table结构的情况,而且由于oracle view,函数,存储过程等对象的相互关联的关系,经常会由于一个view,table,fun,proc的修改而导致相关的对象失效。...
Oracle,大型数据库技术课件