oracle中触发器
触发器的类型有:
触发器类型:
1、 语句触发器
2、 行触发器
3、INSTEAD OF触发
4、 系统条件触发器
5、 用户事件触发器
语句级触发器.(语句级触发器对每个DML语句执行一次)
是在表上或者某些情况下的视图上执行的特定语句或者语句组上的触发器。能够与INSERT、UPDATE、DELETE或者组合上进行关联。但是无论使用什么样的组合,各个语句触发器都只会针对指定语句激活一次。比如,无论update多少行,也只会调用一次update语句触发器。
代码
create or replace trigger tri_test
after insert or update or delete on test
begin
dbms_output.put_line('dddd');
end;
dml是能够批量处理的 所以 :old :new是不允许在这里用的 只有某一个行记录才有
行级触发器.(行级触发器对DML语句影响的每个行执行一次)
create or replace trigger tri_test--创建触发器
before insert or update of sid on test
for each row--触发每一行
begin
dbms_output.put_line(:new.id); --old 只有删除与修改的时候有
end;
instead of触发器(此触发器是在视图上而不是在表上定义的触发器,它是用来替换所使用实际语句的触发器.)
相关文档:
一、 常用日期数据格式
1.Y或YY或YYY 年的最后一位,两位或三位
SQL> Select to_char(sysdate,'Y') from dual;
TO_CHAR(SYSDATE,'Y')
--------------------
7
SQL> Select to_char(sysdate,'YY') from dual;
TO_CHAR(SYSDATE,'YY')
---------------------
07
SQL> Select to_char(sysdate,'YYY') from ......
我在工作中在Oracle中多表查询再按时间倒序时,用order by 表名.datatime desc 总是实现不了。
不过最后问杨鹃最后和我说可以把我们查询的总个sql语句做为一个表来排序:
select rownum,aa.* from (.... order by 表名.datatime desc ) aa ......
Oracle group by及其若干相关函数的一些说明
http://blog.csdn.net/roland_wg/archive/2009/07/03/4319323.aspx
Oracle的group by除了基本用法以外,还有3种扩展用法,分别是rollup、cube、grouping sets。
假设有一个表test,有A、B、C、D、E5列。
1) 如果使用group by rollup(A,B,C),首先会对(A、B、C)进行GROUP BY ......
今天遇到这样的问题,修改主机名后oracle agent 服务突然无法启动,上网找了一会做如下操作。可以正常使用了
1、将%oracle_home\ora92\network\admin下的listener.ora和tnsnames.ora内的所有原主机名改为现有主机名或者固定IP地址(以便客户端机器能够访问Server),当然如果系统重启后自动改正,可忽略此步骤。
2、将%o ......