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用户表空间,在这里拿出来和大家分享一下,希望对大家有用。在我们为微软的NTFS分区格式中的用户磁盘配额鼓掌的时候,Oracle数据库中也已经实现了用户磁盘配额的技术。可以借助表空间,来对用户进行磁盘配额管理。利用表空间的用户磁盘配额,可以实现很多功能。
如可以利用用 ......
学习Oracle时,你可能会遇到Oracle用户表空间问题,这里将介绍Oracle用户表空间问题的解决方法,在这里拿出来和大家分享一下。其实就是在已有的数据库实例上创建一个新的帐号,访问一些新的表。
操作步骤如下:
1、登录linux,以Oracle用户登录(如果是root用户登录的,登录后用su-oracle命令切换成oracle用户)
2、以sy ......
学习Oracle时,你可能会遇到oracle表空间恢复问题,这里将介绍Oracle表空间恢复问题的解决方法,在这里拿出来和大家分享一下。
Oracle表空间恢复方案
一.用户表空间
错误:
在启动数据库时出现ora-01157,ora-01110或操作系统级错误例如ora-07360, 在关闭数据库(使用shutdown normal或shutdown immediate) 时将导致错误 ......
oracle中的BLOB字段是存储2进制的文件,比如文件,图片等。
1、把本地文件写入数据库
package com.data;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.R ......
oracle数据库通过控制文件保持数据库的完整性,一旦控制文件被破坏数据库将无法启动,因此建议采用多路控制文件或者备份控制文件的方法。
控制文件是数据库建立的时候自动生成的二进制文件,只能通过实例进行修改,如果手动修改的话会造成控制文件与物理信息不符合,从而导致数据库不能正常工作。
oracle数据库通 ......