声明变量和常量的区别:
- 变量的值是允许更改的,常量的值不允许更改;
- 变量的声明:变量名,数据类型;
- 常量声明:常量名 constant 数据类型:=默认值;
- 常量要求必须有默认值,变量可根据需要进行默认值的设置。
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语句块) | 重新设置正在执行的工作(命令) |