oracle 笔记 V 之触发器 (TRIGGER)
触发器 trigger
分类:前触发,后触发
行触发器,语句触发器
行触发器与语句触发器的区别:
行触发器要求当一个 DML 语句操作影响数据库中的多行数据时,对于其中的每个数据行,只要它们符合触发约束条件,均激活一次触发器,FOR EACH ROW 选项说明触发器为行触发器;
语句触发器将整个语句操作 作为触发事件,当它们符合约束条件时,激活一次触发器
创建语法:
create or replace trigger trigger_name
before |after
insert |delete | update |{[of column[,column ...]]
on [schema.]table_name
for each row
[when condition]
trigger_body;
eg(仔细体会):
create or replace trigger hello_tri
before insert or delete or update on emp
for each row
begin
dbms_output.put_line('我是触发器!');
end;
相关文档:
初学linux+oracle,采用的本地虚拟机安装linux的方式,版本是Red Hat 5,唯一跟虚拟机安装其他系统不同的是:定制,选IDE硬盘,否则安装过程提示找不到硬盘失败。
本文重点是Oracle安装过程,版本 10.1.0。
3、安装相关的开发包(rpm包):
rpm -q binutils co ......
1、select TIMESTAMP'2009-11-03 09:26:50.124' from dual --默认毫秒保存六位
2、此语句只能在服务器端运行,如果执行以下操作,则在插入oracle时,可以直接写nls_date_format设定的格式,但是只能针对一次绘画,如果关掉窗口则失效。
alter session set nls_d ......
Oracle中USERENV和SYS_CONTEXT用来返回当前session的信息,其中,userenv是为了保持向下兼容的遗留函数,推荐使用sys_context函数调用userenv命名空间来获取相关信息。
1、 USERENV(OPTION)
返回当前的会话信息.
OPTION='ISDBA'若当前是DBA角色,则为TRUE,否则FALSE.
OPTION='LANGUAGE'返回数据库的 ......
1. flashback table table_test to timestamp to_timestamp('20091103000000','yyyymmddhh24miss');
2.如果報錯ORA-08189: cannot flashback the table because row movement is not enabled
3.alter table table_test enable row movement;
4.OK ......
SQL SERVER临时表
也可以创建临时表。临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。
有本地和全局两种类型的临时表,二者在名称、可见性和可用性上均不相同。本地临时表的名称以单个数字符号 (#) 打头;
它们仅对当前的用户连接是可见的;当用户从 Microsoft? SQL Server? 2000 实例断 ......