• Oracle 函数触发器


    -------------------------------触发器测试----------------------------------------
    ----创建测试表
    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;
    

      

  • 相关阅读:
    45.如何优雅的删除一张大表?
    13.安装上传和下载文件
    12.yum install 和yum localinstall区别
    7.Mysql之MGR环境搭建
    mod运算
    取整
    同余式
    Windows下的重定向
    C语言求正负余数
    复利计算公式
  • 原文地址:https://www.cnblogs.com/soulsjie/p/13173738.html
Copyright © 2020-2023  润新知