解决方案 »
- oracle User/IO很高问题???
- 表里有格式如'2012-03-01 00:00:00'这样的时间字段,想以某个月份month 作为查询条件,来查询这一个月的数据,sql应该怎么写?
- ORA-00932: 数据类型不一致: 应为 -, 但却获得 BLOB
- 同一个事务 报“未找到父项关键字” 急
- oracle的date字段插入
- 【100分】同一行显示 主表主键和子表主键(子表主键有多个)
- 序列递增不规律 为什么 (急)
- 插入字符串有&号的问题
- oracle client 和oracle database的关系
- oracle中的完全外联应该怎么用???
- ora-01652错误怎么办?
- redhat as4 安装oracle10g,怎么出现下面的错误啊,我参数环境什么都配好了,请大虾指导!
没想到什么好办法,定时的任务可以用job,将触发器和job结合来做,可是只需要执行一次,还要手工停止,这个很麻烦
或者再加一个字段,储存修改时间,假设这个字段名为updatetime
然后设置一个job:
每20分钟执行一次,查询表中updatetime<sysdate-20/24/60不为空,且flag为0的值,将这些记录的flag修改为1
按这种写法,大约不到半个小时Sleep就结束了.
只好改成下面的写法.
for I in 1 .. 7 * 24 * 60 loop
DBMS_LOCK.SLEEP(60);
end loop;查了查SYS.DBMS_LOCK的包,只有很简短的说明
procedure sleep(seconds in number);
-- Suspend the session for the specified period of time.
-- Input parameters:
-- seconds
-- In seconds, currently the maximum resolution is in hundreths of
-- a second (e.g., 1.00, 1.01, .99 are all legal and distinct values).
这中间记录2在9:12分的时候flag改为1,那记录2要在9:32的时候将来flag字段改为0
after update on mytable
for each row
begin
if :new.flag=1 then
DBMS_LOCK.SLEEP(1200);
:new.flag:=0;
end if;
end trg_test;
试试
数据库是oracle的。有人帮忙写一下这个触发器吗?我之前都没接触过