Oracle 触发器介绍和使用示例

        触发器是一种特殊的过程,但是用户不能直接调用触发器。触发器是特定事件出现时自动执行的代码块

 

        触发器示例

        

create or replace trigger biufer_emp_empno  --触发器名称
before insert or update          --触发语句
of empno
on emp                          --on 目标表
referencing old as old_value
		new as new_value
for each row
when(new value.empno<>7782)     --触发器限制
begin
	:new_value.comm:=0;         --触发操作
end;
/

        触发器名称中应该包含触发器执行时间、执行的操作、涉及的表或列

        如:

        biufer --> before insert or update for each row

 

        emp代表emp表,empno代表empno列,这可以指出触发器会涉及哪个列的值

      

        语句触发器

        1、用户可能需要在表上进行安全检查的insert、update或delete语句触发器,以便根据用户的具体业务规则验证正在进行操作的用户是否具有指定的权限

        

CREATE TABLE FOO(a number);
create or replace trigger biud_foo_a
before insert or update or delete
on foo
begin
 if user not in ('jack','Clinton') then
    raise_application_error(-20001,'你没有修改此表的权限') 
 end if;
end;
/ 

       如果用户不是...没有权限修改  

       在emp_copy表上创建一个触发器,当对emp_copy表执行插入、删除或更新操作是,该触发器将会填充emp_copy_log

       

create or replace trigger biufer_emp_copy
before insert or update or delete
on emp_copy
begin 
   insert into emp_copy_log values(user,sysdate);
end;
/

    然后测试该触发器。修改emp_copy

    

create table emp_copy_log(
who varchar2(30),
when date)
/

    

        行触发器  http://swordshadow.iteye.com/admin/blogs/1966002

 

       instead of 触发器

       instead of触发器是Oracle系统用来替换所使用的实际语句而执行的触发器,与导致触发器激活的语句执行之前或执行之后的语句触发器和行触发器不同

 

        示例:首先在emp表上创建emp_job视图

        

create or replace view emp_job
        as
        select empno, ename, job from emp;

 

 

       接着在emp_job视图上创建一个触发器。使得对emp_job视图的数据更新转变为对emp表的数据更新

create or replace trigger update_emp_job_view
instead of update
on emp_job
begin 
   update emp
   set empno = :new.empno,
         ename = :new.ename,
         job = :new.job
   where empno = :old.empno

        在触发器的主体有一个对表emp的update关键字。由于emp_job视图是建立在emp表上的视图,如果更新这个视图,实际上就是更新该图的基本表

 

 

删除触发器:

ALTER TRIGGER 名称 DISABLE;
drop trigger 名称;

 

    其他资料参考:

 

    

两个经典的Oracle触发器示例

      

利用 RSAU_LOG_API 把 SAP 安全审核日志接入企业 SIEM 的完整指南 在 SAP 世界里,安全审核日志(Security Audit Log,简称 SAL)是审计和合规的核心基础设施之一。系统会在后台把安全相关的关键事件记录下来,比如:(用户登录与登录失败用户锁定、解锁权限对象或角色变更远程调用(RFC)相关活动关键事务码的启动程序直接执行、批处理作业相关的敏感操作传统 ABAP 系统里,这些日志会写到本地应用服务器上的审计文件中(背后对应类似表RSAUENTR2的结构),包含事件标识、客户端、用户、终端、事务码、时间戳等信息。 阅读详情

相关推荐

一起玩转GNU Radio:调制解调大合集

本文汇总了GNU Radio中多种常见的调制解调方法及其参考文献链接,便于今后查看,供大家参考!

无线通信实验室 1万+

Oracle数据库——触发器的创建与应用

一、涉及内容 1.理解触发器的概念、作用和类型。 2.练习触发器的创建和使用。 二、具体操作 (实验)   1.利用触发器对在scott.emp表上执行的DML操作进行安全性检查,只有scott用户登录数据库后才能向该表中执行DML操作。(第1题中,user是系统函数,返回当前用户。字符串中使用两个单引号表示一个单引号。) 要求:分别以system用户和scott用户对emp 表执行D...

weixin_33985507的博客 662

COMSOL两相流(相场法)

COMSOL是一款功能非常强大的多物理场仿真软件,拥有可视化和后处理工具,可方便有效的展示您的仿真效果,具有灵活、高效、友好的特点,软件能够为用户提供各类工程问题的解决方案,从而帮助广大研究和工程人员能够在科研上取得新突破。 COMSOL可以实现声学、传热、流体力学、结构力学等方面的模拟仿真,具体模块如下图所示。 COMSOL软件设置流程 定义需要求解的问题类型:针对一个需要仿真的问题,需要先对问题进行分析;分析该问题用到哪些物理场,什么样的几何模型,以及如何设置研究等。该步骤可以使用COMSOL中的

weixin_47139559的博客 1万+

Oracle练习二

一、求 1-100 之间的素数 set serveroutput on; declare flag boolean; begin for i in 1..100 loop for j in 2..i/2 loop if mod(i,j)=0 then flag:=false; end if; end loop; if flag then dbms_output.put_line(i); end...

鹏鹏的博客 3332

【保姆级教程/代码】使用PRIDE PPP-AR软件解算ZTD、反演GNSS PWV,并评估精度

在本算例中,我下载了BJFS站2024年的IGS ZTD产品,用于评估PRIDE PPP-AR软件解算出ZTD结果的精度。

weixin_43910227的博客 2370

BERTopic安装指南:hdbscan依赖问题全解析(附解决方案)

本文详细解析了安装BERTopic时常见的hdbscan依赖报错问题,深入剖析了C++编译环境缺失、Python版本兼容性以及包管理渠道混用三大核心原因。针对Windows、macOS和Linux不同系统,提供了创建虚拟环境、使用conda安装预编译包、安装C++编译工具等具体解决方案,帮助用户顺利安装BERTopic并开始文本主题建模实践。

weixin_29061041的博客 214

Oracle-trigger触发器解读

触发器相关概念及语法概述本篇博文中主要探讨以下内容: 什么是触发器 触发器的应用场景 触发器的语法 触发器的类型 案例 数据:触发器的概念和第一个触发器数据库触发器是一个与表相关联的,存储的PL/SQL 语句。每当一个特定的数据操作语句(insert update delete)在指定的表上发出时,Oracle自动执行触发器中定义的语句序列。举个简单的例子:当员工表中新增一条记录后,自动打印“成

小工匠 2万+

vue2/3 - 详细对接海康监控实时视频预览和录像回放功能,vue接入使用海康视频监控播放器实时推流等功能,支持hik/rtsp/rtmp/hls/ws取流协议(详细教程与示例代码,一键复制开箱即用

vue2,vue3,海康,vue海康视频监控,海康开放平台,如何接入海康的实时监控,海康威视,Vue实现海康监控视频播放,vue3对接海康视频监控播放、回放的方法流程,实现海康H5视频插件播放视频的实例,web网页接入海康,海康威视的视频vue的录像回放和实时预览,前端vue3项目接入海康威视h5player.js播放器,vue2接入海康威视视频监控平台,使用海康监控H5视频播放,对接海康视频监控,海康视频web插件,web前端在vue中通过海康插件嵌入视频,实现实时预览,vue3海康监控播放器组件,vue

✅ 精选推荐文章 1万+

oracle课堂收录-触发器

1.语句级触发器 先举个栗子: (1)建立一个日志信息表emp_log用于存储用户对表的操作。 SQL> create table emp_log( 2 who varchar2(30), 3 when date); 表已创建。 (2)在emp表上创建语句级触发器,将用户对emp表进行的操作记录到emp_log表中。 SQL> create or replac

笨鸟 764

SAP SD模块定价过程后台配置简介

只有手工输入定价时(例如,在定价中的定价浏览屏幕中),或者只有从外部处理转移这些定价时(例如,成本核算),才将这些定价包括在确定(价格确定、输出确定,批次确定)之中。定价过程的定义和分配是SD模块中最核心的配置,包含了条件表、条件类型、存取顺序、发票类型、客户定价过程等,确定了销售订单已什么价格销售、税率、附加折扣等多个条件行程有一个定价过程。12、小计:记录该条件类型在VBAP表中是否存储,以及其后续用途,如记入信贷,占用信贷额度,记入成本等,如果需要金额暂用信贷额度的话,在小计这里选择A即可。

我小时候很黑的博客 3783

SAP 生产订单工序删除状态撤回简介

2、我们在前台对于生产订单的状态一个是在生产订单抬头中的状态,另外一个是针对上面一直在测试的是工序的状态,这个两个状态是前台可见的状态,实际生产订单还有一个组件物料的状态,这个状态是不可见的一个状态。生产订单中的0010工序中对应的组件的栏位被标识,表示有物料分配到了0010的工序中,正常情况下0010的工序被分配了工序是不应该被删除的。将已领料的工序删除掉,导致异常的发生。当物料已领料会,用户仍然把已分配的物料的工序删除掉,导致后续业务操作过程中产生异常,如下图中所示,0010的工序被打上了删除标识。

我小时候很黑的博客 1942

PL/SQL触发器基础及例子

  触发器的简介; 触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。因此触发器不需要人为的去调用,也不能调用。触发器和过程函数类似 过程函数必须要调用,   一个表中最多只能有12个触发器类型的,触发器和过程函数相似 触发器不需要调用直接执行, 触发时间:指明触发器何时执行,该值可取: before:表示在数据库动作之前触发器执行; aft...

代码写到地老天荒 381

【第一章】核心思维:那个在此刻“消失”的 CPU

摘要:RTOS本质是"有状态的抢占"而非"多任务",单核MCU通过时间片分时复用实现任务切换。裸机编程的线性思维在RTOS中不再适用,开发者需接受代码随时被打断的现实。RTOS通过保存/恢复CPU寄存器组(上下文)实现任务切换,每个任务拥有独立栈空间。非原子操作(如全局变量自增)会导致竞态条件,必须使用临界区或互斥锁保护。RTOS编程需要建立并发思维,关注代码原子性、可重入性和栈空间分配。

一路往蓝-Anbo 的博客 105

oracle触发器示例,Oracle触发器简单示例

首先创建两张测试表:CREATE TABLE test ( t_id NUMBER(4), t_name VARCHAR2(20), t_age NUMBER(2), t_sex CHAR );CREATE TABLE test_log ( caozuo VARCHAR2(20),tdate date );然后创建触发器并且进行测试:CREATE OR REPLACE TRIGGER test_t...

weixin_30977281的博客 251

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

oracle触发器示例

一个简单的oracle触发器

king的专栏 1231

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Oracle PL / SQL –删除触发器示例

本文向您展示如何使用DROP TRIGGER删除触发器。 -- delete a trigger DROP TRIGGER trigger_name; 注意 在DROP TRIGGER语句中,建议在触发器名称之前指定架构名称。 如果您未指定架构名称,则数据库将假定触发器位于您自己的架构中。 1.表+触发器 1.1创建一个表和一个触发器。 demo_data creat...

一名可爱的技术搬运工 6183

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

oracle 关闭触发器命令,Oracle中触发器示例详解

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

weixin_35051558的博客 910

Oracle PL / SQL –删除触发器之后的示例

本文向您展示了如何使用AFTER DELETE TRIGGER ,它将在执行删除操作后AFTER DELETE TRIGGER 。 在现实生活中,它主要用于以下目的: 审核或记录 1.删​​除触发后 在这个例子中,如果用户已删除的行medical_bills ,被删除的行会被插入到medical_bills_history通过上表删除触发器后medical_bills 1.1创建...

一名可爱的技术搬运工 437

一个简单的Oracle触发器示例

本文通过示例描述Oracle中的触发器的写法,旨在描述一个简单记录监控日志的的触发器的写法。希望对初学者能有帮助. 1. 准备工作:1) 创建一张表,在SQLplus控制台执行如下脚本: CREATE TABLE PRODUCT ( "ID" VARCHAR(10) NOT NULL, "NAME" VARCHAR(10) NOT NULL...

weixin_34080571的博客 197

Oracle数据库触发器完整代码示例及经典案例解析

在Oracle数据库中,触发器(Trigger)是一项强大的功能,可以实现在表数据操作前、后或代替操作时执行自定义代码逻辑。下面将以优快云风格介绍一个完整的Oracle数据库触发器代码示例,并提供几个经典案例来解析其用法和应用场景。

qq_36521848的博客 923

oracle触发器(trigger)应用示例一则

创建DML语句行级触发器。当对emp表执行INSERT, UPDATE, DELETE 操作时,它自动更新dept_summary 表中的数据。由于在PL/SQL块中不能直接调用DDL语句,所以,利用ORACLE内置包DBMS_UTILITY中的EXEC_DDL_STATEMENT过程,由它执行DDL语句创建触发器: BEGIN   DBMS_OUTPUT.PUT_LINE('插

huigang_10086的专栏 610

一个完整的Oracle触发器示例

本文通过示例描述Oracle中的触发器的写法,旨在描述一个简单记录监控日志的的触发器的写法。希望对初学者能有帮助.1. 准备工作: 1) 创建一张表,在SQLplus控制台执行如下脚本:    CREATE TABLE PRODUCT    (      "ID" VARCHAR(10) NOT NULL,      "NAME" VARCHAR(10) NOT NULL,      "PRI

程式先锋的专栏(Javabiz.cn) 655

Oracle PL / SQL – INSTEAD OF触发器示例

本文向您展示如何使用INSTEAD OF TRIGGER进行更新 非版本视图 非版本视图的嵌套表列 此INSTEAD OF触发器提供了一种修改views的方法,该views无法直接通过DML语句(如INSERT,UPDATE和DELETE)进行修改 INSTEAD OF触发器是 始终是行级触发器。 可以读取旧值和新值,但不能更改它们。 不能是有条件的。 意味着我...

一名可爱的技术搬运工 701

oracle 和 SQL Server触发器创建、删除、修改、查看示例

ORACLE触发器的删除,修改,插入以及详细介绍 DML触发器的创建   创建DML触发器需要CREATE TRIGGER系统权限。创建DML触发器的语法如下:   CREATE [OR REPLACE] TRIGGER 触发器名   {BEFORE|AFTER|INSTEAD OF} 触发事件1 [OR 触发事件2...]   ON 表名   WHEN 触发条件   [FO

Kelat的专栏 3131

oracle 触发器生成id,Oracle中用序列和触发器实现ID自增的方法(代码示例)

本篇文章给大家带来的内容是关于Oracle中用序列和触发器实现ID自增的方法(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。在设计数据库的时候,Oracle中没有类似SQL Server中系统自动分配ID作为主键的功能,这时Oracle可以通过“序列”和“触发器”来实现ID自动增加的功能。1.创建序列Sequencecreate sequence seq_uidincr...

weixin_30086041的博客 571

两个经典的Oracle触发器示例

 【案例一】题目:--触发器:--添加员工信息,流水号作为自动编号(通过序列生成),--并且判断如果工资小于0,则改为0;如果大于10000,则改为10000。CREATE TABLE emp2(e_id NUMBER,e_no NUMBER,e_name VARCHAR2(20),e_sal NUMBER)SELECT * FROM emp2;CREATE SEQUENCE

程序人生的博客 6万+
上一篇: oracle 主键自增长设置
下一篇: windows的GitHub配置
「已注销」
博客等级 码龄16年 3粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值