【Oracle 触发器】(3) 触发器应用场景--复杂的安全性检查

禁止在非工作时间插入新员工

 1 --触发器应用场景1: 复杂的安全性检查
 2 --禁止在非工作时间插入新员工
 3 /*
 4 1.周末:to_char(sysdate,‘day‘) in(‘星期六‘,‘星期日‘)
 5 2.上班前,下班后:to_number(to_char(sysdate,‘hh24‘)) not between 9 and 18
 6 */
 7
 8 create or replace trigger securityemp
 9 before insert --插入前触发
10 on emp1
11 declare
12 begin
13
14     if to_char(sysdate,‘day‘)in (‘星期六‘,‘星期日‘) or
15      to_number(to_char(sysdate,‘hh24‘)) not between 9 and 18 then
16     --禁止insert新员工
17     raise_application_error(-20001,‘禁止在非工作时间插入新员工‘);
18     end if;
19 end;
20 /

测试:

1 insert into emp1(empno,ename,sal,deptno) values(1001,‘Tom‘,3000,10);

结果:

原文地址:https://www.cnblogs.com/CPU-Easy/p/10908875.html

时间: 2024-10-13 05:40:25

【Oracle 触发器】(3) 触发器应用场景--复杂的安全性检查的相关文章

Oracle中的触发器

Oracle中的触发器,布布扣,bubuko.com

oracle 存储过程 ,触发器练习

/*以下代码是对emp表进行显示宽度设置 */col empno for 9999;col ename for a10;col job for a10;col mgr for 9999;col hiredate for a12;col sal for 9999;col comm for 9999;col deptno for 99;col tname for a12;set pagesize 50; //----------------------------------------------

oracle 如何用触发器实现更新刚插入的数据集合

oracle 如何用触发器实现更新刚插入的数据集合 1.建立测试表 create table TEST_TB ( ID   NUMBER, WLID NUMBER, PM   VARCHAR2(100), DJZT VARCHAR2(10), SL   NUMBER, PH   VARCHAR2(100) ); 2.建立带ref cursor定义的包和包体及函数: CREATE OR REPLACE package pkg_test as /* 定义ref cursor类型 不加return类型

oracle对象之触发器

触发器 数据库触发器是一个与表相关联的.存储的PL/SQL程序.每当一个特定的数据操作语句(Insert,update,delete)在指定的表上发出时,Oracle自动地执行触发器中定义的语句序列. 1.触发器作用 数据确认  实施复杂的安全性检查 做审计,跟踪表上所做的数据操作等 数据的备份和同步 2.触发器的类型 语句级触发器 :在指定的操作语句操作之前或之后执行一次,不管这条语句影响了多少行 . 行级触发器(FOR EACH ROW) :触发语句作用的每一条记录都被触发.在行级触发器中使

(八)Oracle学习笔记—— 触发器

1. 触发器简介 触发器在数据库里以独立的对象存储,类似于过程(procedure)和函数(function),都有声明,执行和异常处理过程的PL/SQL块.它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是由一个事件来启动运行.即触发器是当某个事件发生时自动地隐式运行.并且,触发器不能接收参数. 所以运行触发器就叫触发或点火(firing).ORACLE事件指的是对数据库的表进行的INSERT.UPDATE及DELETE操作或对视图进行类似的操作.ORACLE将触发器

Oracle 学习之触发器

1. 触发器简介 触发器是存储在数据库服务器中的程序单元,当一个表或一个视图被改变,或者数据库发生某些事件时,Oracle会自动触发触发器,并执行触发器中的代码.只有在触发器中定义的事件发生时,触发器才被触发.触发器是自动执行的代码块,和存储过程的区别在于,用户可以直接调用存储过程,而不能直接调用触发器. 触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是由一个事件来启动运行.即触发器是当某个事件发生时自动地隐式运行.并且,触发器不能接

oracle 如何用触发器实现更新刚插入的数据

oracle 如何用触发器实现更新刚插入的数据create or replace trigger tr_namebefore inserton 表for each rowbegin:new.某字段='新值';end; 修改A表的某条数据的某个字段AA(这个字段是规定好的),在保存后A表的该条数据的另一个字段BB会根据一个函数把AA字段的值处理后更新create or replace trigger BF_ZJ_UPDATEZJM   after update of aa on a for eac

Oracle序列和触发器的使用

Oracle不能直接设定某字段自增,需要通过建序列和触发器,实现主键的自增功能 一.序列 1,建序列 序列的语法格式为: CREATE SEQUENCE name //name为序列的名称 [INCREMENT BY n] //n序列的步长 [START WITH n] //n序列的初始值 [{MAXVALUE / MINVALUE n | NOMAXVALUE}] //n序列的最大值或最小值 [{CYCLE | NOCYCLE}] //序列达到最大值时是否循环 [{CACHE n | NOCA

Oracle中创建触发器示例及注意事项

Oracle中创建触发器示例及注意事项 1.oracle 中创建触发器示例 CREATE TABLE "CONCEPT"."FREQUENCYMODIFYLOG" ( "FREQUENCYID" NUMBER(10,0), "NAME" NVARCHAR2(30), "CODE" VARCHAR2(10 CHAR), "MNEMONICCODE" VARCHAR2(10 CHAR), &