-1

私は正常に実行されているmysqlにイベントスケジューラを持っています

CREATE event 'STORE' ON schedule every 1 hour doUPDATE c_store
SET    is_active = '0'
WHERE  web_id =
       (
              SELECT web_id
              FROM   c_web
              WHERE  Datediff(Now( ) , createdon ) > 15) 

私の質問は、私は Oracle でも同じことがしたいということです。

4

2 に答える 2

1

DBMS_SCHEDULERを使用してジョブを作成し、1 時間ごとに実行するようにスケジュールする必要があります。

例えば、

SQL> BEGIN
  2    DBMS_SCHEDULER.DROP_JOB (JOB_NAME => 'test_full_job_definition');
  3  END;
  4  /

PL/SQL procedure successfully completed.

SQL>
SQL> BEGIN
  2    DBMS_SCHEDULER.create_job (
  3      job_name        => 'test_full_job_definition',
  4      job_type        => 'PLSQL_BLOCK',
  5      job_action      => 'BEGIN my_job_procedure; END;',
  6      start_date      => SYSTIMESTAMP,
  7      repeat_interval => 'freq=hourly; byminute=0; bysecond=0;',
  8      end_date        => NULL,
  9      enabled         => TRUE,
 10      comments        => 'Job defined entirely by the CREATE JOB procedure.');
 11  END;
 12  /

PL/SQL procedure successfully completed.

SQL>
SQL> SELECT JOB_NAME, ENABLED FROM DBA_SCHEDULER_JOBS where job_name ='TEST_FULL_JOB_DEFINITION'
  2  /

JOB_NAME                                 ENABL
---------------------------------------- -----
TEST_FULL_JOB_DEFINITION                 TRUE

SQL>

その他の例はこちら

于 2015-04-10T11:43:55.327 に答える
0

DBMS_SCHEDULERを使用する必要があります

ここにいくつかの例があります。

于 2015-04-10T11:44:45.703 に答える