oracle 触发器开发
触发器开发的目的:确保数据库满足特定的商业规则和企业逻辑,可以使用触发器,约束,子程序。因为
约束最简单且性能好,所选约束,如果约束不能满足,就用触发器,若触发器都不能满足选择子程序。
一、触发器功能:
1,控制数据安全,在服务器级别控制数据安全是通过授权和回收对象权限来完成的,比如ams用户对scott/tiger 用户对表DML 操作、
grant select ,delete,update,insert on emp to ams;
但是为了实现更复杂的安全模式,比如限制对某个表要修改的数据,就需要用到触发器,比如,只有在9:00到17:00才能改变数据库EMP表对数据库表操作
create or replace trigger triger_stat_before
before insert or update or delete on emp
declare
-- local variables here
begin
if (to_char(sysdate,'HH24') not between '9' and '17') then
RAISE_APPLICATION_ERROR(-20101,'非工作日时间');
end if;
end triger_before;
2,实现数据审计,监视非法和可疑的数据活动,oracle 本身提供了审计功能。如对emp DML 操作以后,
把SQL操作的信息(用户,时间等)写入字典。但是只能审计sql 操作,不能记载数据变化。如果要记载数据
变化必须使用DML触发器。比如工资变化写入数据字典表。
--创建字典表
drop table EMP_CHANGE;
create table EMP_CHANGE(
CNAME VARCHAR2(200),
OLDSAL NUMBER,
NEWSAL NUMBER,
CHANGE_TIME TIMESTAMP(6)
)
--创建触发器
create or replace trigger triger_row_after
after update of sal on emp
for each row
 
相关文档:
数据库结构和空间管理(数据文件、日志文件、表空间、段、模式和模式对象)
一个ORACLE数据库是数据的集合,被处理成一个单位。一个ORACLE数据库有一个物理结构和一个逻辑结构。
ORACLE逻辑数据库结构是用户所涉及的数据库结构。一个ORACLE数据库的逻辑结构由下列因素决定:
&nb ......
ORACLE数据库的日志文件$ORACLE_BASE/admin/orasid/bdump/alert_orasid.log记录了重作日志的转换,
数据库启动和关闭,数据库结构的改变,回退段的修改,死锁,内部错误等信息.
数据库管理员需要检查这个文件有无ORA-错误并定期地对这个日志文件进行存档整理 ......
DECODE函数的作用:它可以将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。
区别于SQL的其它函数,DECODE函数还能识别和操作空值。
语法如下:
DECODE ......
oracle数据库通过控制文件保持数据库的完整性,一旦控制文件被破坏数据库将无法启动,因此建议采用多路控制文件或者备份控制文件的方法。
控制文件是数据库建立的时候自动生成的二进制文件,只能通过实例进行修改,如果手动修改的话会造成控制文件与物理信息不符合,从而导致数据库不能正常工作。
oracle数据库通 ......