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表空间的方法如下:
1.可以通过Oracle自带的图形用户界面实现。具体 ......
学习Oracle时,你可能会遇到oracle表空间恢复问题,这里将介绍Oracle表空间恢复问题的解决方法,在这里拿出来和大家分享一下。
Oracle表空间恢复方案
一.用户表空间
错误:
在启动数据库时出现ora-01157,ora-01110或操作系统级错误例如ora-07360, 在关闭数据库(使用shutdown normal或shutdown immediate) 时将导致错误 ......
数据库结构和空间管理(数据文件、日志文件、表空间、段、模式和模式对象)
一个ORACLE数据库是数据的集合,被处理成一个单位。一个ORACLE数据库有一个物理结构和一个逻辑结构。
ORACLE逻辑数据库结构是用户所涉及的数据库结构。一个ORACLE数据库的逻辑结构由下列因素决定:
&nb ......
常用SQL查询:
1、查看表空间的名称及大小
select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
from dba_tablespaces t, dba_data_files d
where t.tablespace_name = d.tablespace_name
group by t.tablespace_name;
2、查看表空间物理文件的名称及大小
select tablespace_name, file_id, ......
当使用'for update' 造成表锁住了.可以用DBA登陆按照下面步骤:
1.查看哪个表被锁:
select b.owner,b.object_name,l.session_id,l.locked_mode
from v$locked_object l, dba_objects b
where b.object_id=l.object_id;
2.查看被锁表的sid 和serial# :
select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$lo ......