解决方案 »
- 求助大神:oracle biee11 analytics登陆不进,怎么重置biee密码?
- 如何查询数据库中包含某个字段的所有表
- 关于数据库大批量操作慢的问题,跪请各位大大帮忙看看。
- Oracle数据库多实例及负载集群中的疑问
- ORA-01092错误,救急!!
- 安装Oracle9.2后在Services中找不到Management的相关启动服务
- help me pls!!! 记录重复问题!
- 那里有Oracle9i for OleDB 驱动的下载
- 如果oracle的函数名是用字符串变量表示的,我如何调用函数?
- 请大家帮我看看我创建表空间的SQL有错吗?谢谢
- 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的。有人帮忙写一下这个触发器吗?我之前都没接触过