日期:2014-05-17  浏览次数:20820 次

我想让oracle数据库每天23:00点干一件事情,怎么实现呢??
我单位服务器上安装Oracle数据库,其中有两个表biao1;biao2.
biao1中有数字型字段A1;
biao2中有数字型字段A1;
我想在每天23:00系统自动从biao2中读出A1,赋值给biao1的A1.
怎么实现呢,菜鸟希望能够得到详细的代码。

------解决方案--------------------
写一个从biao2读取值插入到biao1的存储过程,创建一个Job,执行这个存储过程。
设置Interval的值为每天的23:00点即可。
每天的23点:TRUNC(sysdate) +23/(24)
------解决方案--------------------
写个过程,建个job
create or replace procedure pp_pro is--过程

begin

  update biao1
     set a1 =
         (select a1 from biao2 where biao2.id = biao1.id);
  commit;
end pp_pro;

--创建job
DECLARE 
X NUMBER; 
BEGIN 
SYS.DBMS_JOB.SUBMIT 
( job => X 
,what => 'pp_pro;'
,next_date => to_date('2014-01-23 23:00:00', 'yyyy/mm/dd hh24:mi:ss') 
,interval => TRUNC(sysdate+23/24)
,no_parse => TRUE 
); 
END; 

commit; 

------解决方案--------------------
引用:
DECLARE
 X NUMBER;  
 BEGIN 
 SYS.DBMS_JOB.SUBMIT 
  ( job => X  ,
  what => 'yalie_yjcyl',
  next_date => to_date('2014/01/23 23:00:00', 'yyyy/mm/dd hh24:mi:ss')  ,
  interval => 'sysdate+12/24' ,
  no_parse => TRUE ); 
   END; 
/////////////////////////////////
用PLSQL创建完后,右键----选择“run”,发现有错误。
过程名后面有分号的 ,还有你不是要23点执行么,那你时间间隔怎么是12个小时,执行 你直接按f8就行了