while循环检查

时间:2015-09-18 14:08:46

标签: sql loops oracle11g dbms-output

只是想知道你是否可以帮我解决一个问题。 我被告知写一个函数或匿名块,直到你把一个项目放在一个表/ 该程序应每5秒检查一次条目。它应该输出一条消息,通知您发生了检查。一旦找到条目,它将通知您它找到了条目,删除条目然后退出。

我一直试图完成这个,但没有运气。

非常感谢任何帮助。

谢谢。

你必须使用while循环并帮助你通过调用dbms_lock.sleep(5)来控制5秒;

1 个答案:

答案 0 :(得分:0)

我无权访问Oracle数据库,但这里有一个关于它如何工作的一般概念(MySQL)

create table tt_mess_around (`id` INT, `name` VARCHAR(50));

delimiter \\
create procedure watcher ()

BEGIN
declare foundInsert INT default 0;
   while foundInsert = 0 do
      select id from tt_mess_around limit 1 into foundInsert;
      if (foundInsert = 0) then
         select 'sleeping for 5 seconds' from dual;
         do sleep(5);
      end if;
   end while;
   delete from tt_mess_around where id = foundInsert;
   select 'just deleted record' from dual;
END
\\
delimiter ;


call watcher;

insert into tt_mess_around 
select 1, 'Arianna' from dual;