Oracle数据库的DML触发器/JOB定时器应用

本文介绍了Oracle数据库中的DML触发器和JOB定时器的使用。对于DML触发器,讲解了如何创建行级和表级触发器,以及在触发器中使用PL/SQL语句。提到了触发器中的`new`和`old`关键字以及inserting, updating, deleting谓词。而对于JOB定时器,阐述了创建job的基本语法,并提及了如何调用dbms_job定时器过程。" 121315052,9902698,递归与贪心算法实战:组合、分糖果与最大序列和,"['算法', '贪心算法', 'c++']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声明变量和常量的区别

  1. 变量的值是允许更改的,常量的值不允许更改;
  2. 变量的声明变量名,数据类型;       
  3. 常量声明常量名 constant 数据类型:=默认值;
  4. 常量要求必须有默认值,变量可根据需要进行默认值的设置    

1.DML触发器

  • 先创建记录表 create table 表名 as 查询语句;
  • create or replace trigger 触发器名

触发时机 (before:操作之前触发,after:操作之后触发)

触发事件(DML)多个时用or连接;用update时+(of 字段)

on 表名或视图;(数据库触发器所在的表)

for each row   --创建行级触发器,针对表级时不用写

when 触发条件(可忽略)

begin    --将触发操作前数据插入到日志记录表,以供监督使用。

PL/sql执行语句

end;

函数名称 或 储存调用

注:raise_application_error()  --触发异常弹窗;

注:如果内存过大的时候就用存储过程调用

注:在触发器的执行部分只能用DML语句(SELECT、INSERT、UPDATE、DELETE)。 触发事件只能用or隔开。Where 子句指定的触发约束条件只能用在before 和after 行触发器中

new 列  :新值;old 列 :旧值(数据更新之前的)

谓词作为条件使用:

inserting(): 触发条件为添加()列时执行;

updating ():触发条件为修改()列时执行

deleting ():触发条件为删除()列时执行;

2.JOB定时器

创建job基本语法:

declare  定义标识变量

begin

dbms_job.定时器过程(值);

end;

定时器过程属性

序号

属性

说明

1

broken(标识,已破未破参数,再次运行时间)

已破为y,未破为N

2

change(标识,语句块或存储,执行工作的时间,执行工作的频率)

改变指定工作的设置

3

interval(标识,执行工作的频率)

设置并显示执行工作的时间间隔数

4

next_date(标识存在的工作,工作执行的时间)

设定并显示工作的执行时间

5

remove(标识)

定时器移除

6

run(工作的标识)

立即执行指定的工作

7

submit(标识,PL/SQL语句块,执行工作的时间,执行工作的频率)

正常计划好工作

8

user_export(标识,重新提交工作正文)

安排存在的工作便于重新提交

9

what(标识,PL/SQL语句块)

重新设置正在执行的工作(命令)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值