首页 > 数据库技术 > 详细

Oracle 函数触发器

时间:2020-06-21 22:02:24      阅读:71      评论:0      收藏:0      [点我收藏+]
-------------------------------触发器测试----------------------------------------
----创建测试表
CREATE TABLE ZYJ_CS (
ID INT ,
NAME NVARCHAR2(20)
);

--插入测试数据
INSERT INTO ZYJ_CS(ID,NAME) VALUES (1,‘测试‘);
INSERT INTO ZYJ_CS(ID,NAME) VALUES (2,‘测试2‘);
INSERT INTO ZYJ_CS(ID,NAME) VALUES (3,‘测试3‘);
COMMIT;
SELECT * FROM ZYJ_CS;

--创建备份表
CREATE TABLE ZYJ_CS_BK AS SELECT * FROM ZYJ_CS WHERE 1=0;
SELECT * FROM ZYJ_CS_BK;


--创建触发器  
CREATE OR REPLACE TRIGGER TG_ZYJ_CS_DEL
BEFORE DELETE ON ZYJ_CS FOR EACH ROW
BEGIN 
  INSERT INTO ZYJ_CS_BK(ID,NAME)VALUES(:OLD.ID,:OLD.NAME);
END ;
  
  
--触发器测试
SELECT * FROM ZYJ_CS_BK WHERE ID=1;
DELETE FROM ZYJ_CS WHERE ID=1;
COMMIT;
SELECT * FROM ZYJ_CS_BK WHERE ID=1;

--删除表
DROP TABLE ZYJ_CS;
DROP TABLE ZYJ_CS_BK;

-------------------------------有参带返回值函数----------------------------------------
--创建有参函数,返回三数最大值
CREATE OR REPLACE FUNCTION FN_GETMAX(
  NUM1 IN  NUMBER, 
  NUM2 IN  NUMBER,
  NUM3 IN NUMBER
) RETURN NUMBER
AS
MAXNUM NUMBER :=0;  
BEGIN 
 SELECT GREATEST(GREATEST(NUM1,NUM2),NUM3) INTO MAXNUM FROM DUAL;
 RETURN MAXNUM;
END ;


--调用
SELECT FN_GETMAX(23,45,89) AS 最大值 FROM DUAL;

  

Oracle 函数触发器

原文:https://www.cnblogs.com/soulsjie/p/13173738.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!