0

我在 Oracle pl/SQL 上制作了这个调度程序,它每 5 年从数据库中删除旧用户。我尝试通过将时间段从 5 年更改为 1 分钟(并将开始日期更改为插入后五分钟)来测试它,它一直在运行并且除非调度程序停止,否则它不会完成工作。如何解决这个问题?我尝试在删除语句之后使用提交,但没有结果。

这是代码:

BEGIN
 DBMS_SCHEDULER.CREATE_JOB (
   job_name   => 'Delete_Idle_Users',
   job_type   => 'PLSQL_BLOCK',
   job_action => 'BEGIN
     DELETE FROM Store_Member
     WHERE Member_ID IN (
       Select Member_ID
       FROM (
         select Member_ID, Max(Purchase_Date) AS Last_Purchase
         From Cart
         Group By Member_ID
       ) 
       WHERE Last_Purchase<(SYSDATE-(365.25*5))
     );
   END;',
   start_date => TO_DATE('01-GEN-2021','DD-MON-YYYY'),
   repeat_interval => 'FREQ=YEARLY',
   enabled    => TRUE,
   comments   => 'Deleting users that didn't buy anything in 5 years.'
 );
END;
4

0 回答 0