oracle触发器
1、触发器类型
1)语句级触发器
在指定的操作语句操作之前或之后执行一次,不管这条语句影响了多少行记录。
2)行级触发器
影响几行记录执行几次,可以使用:old和:new伪记录变量。
2、语法
create [or replace] trigger 触发器名
{before|after}
{delete|insert|update[of 列名]}
on 表名
[for each row [where(条件)]]
PLsql块
例1:插入记录后,打印成功提示
create or replace trigger hello
after insert
on emp10
declare
begin
dbms_output.put_line('成功插入记录');
end;
3、应用
(1)实施复杂的安全性检查:
例2:禁止在非工作时间 插入新员工
create or replace trigger securityEmp10
before insert on emp10
declare
begin
if to_char(sysdate,'day') in('星期六','星期日') or
to_number(sysdate,'hh24') not between 9 and 17 then
raise_APPlication_ERROR(-20001,'禁止在非工作时间插入数据');
end if;
end;
注意:raise_application_error()中的错误序号只能在-2000到-20999之间
(2)数据的确认:
例3:涨后的薪水不能少于涨前的薪水
create or replace trigger checkSalary
before update on emp10
for each row
declare
-- local variables here
begin
if :old.sal>:new.sal then
raise_application_error(-20002,'工资只能增加,不能降低');
end if;
end checkSalary;
相关阅读
1、创建用户create user test identified by test; 这样就创建了一个用户名密码都为test的用户 但这个时候test还是不能登陆成功
因为以前一直都是用的mysql的数据库,所以当新工作中用到Oracle数据库的时候,一时还有点不习惯,特别是一直连接的远
IE上ORACLE OEM 证书错误 , 导航阻止,无法”继续浏览此
文章转载自:http://blog.51cto.com/cswggod/1193266仅用于个人学习,知识收藏本文是我安装ORACLE11g后客户端IE访问不了是出现的,无奈
/*第1步:创建临时表空间 */create temporary tablespace kc_temptempfile 'C:\app\Administrator\oradata\orcl\kc_temp.db
1 sqlplus 登录 本地登录 (登录数据库服务器) Oracle 登录 sqlplus 账户名/密码 as 角色名 1.1 sys登录 例如: sqlplus sys/oracle