دیتابیس اوراکل

دیتابیس اوراکل
طبقه بندی موضوعی

۱ مطلب با کلمه‌ی کلیدی «dbms_job» ثبت شده است

DBMS_JOB in Oracle DB 19c

 

اوراکل از نسخه 12cR2 اعلام کرد که پکیج DBMS_JOB، منسوخ (deprecateشده است. و در نسخه 19c با تبدیل هر DBMS_JOB ایجاد شده به یک جاب DBMS_SCHEDULER، یک گام هم در جهت منسوخ کردن این پکیج جلوتر رفته است.

در زیر مثالی در رابطه با این موضوع آورده شده است:

SQL> conn raheleh

SQL> select job, what from user_jobs;

no rows selected

 

SQL> select job_name, job_action from user_scheduler_jobs;

no rows selected

 

 

SQL>

CREATE TABLE raheleh.tbl1

(

    id      NUMBER,

    name    VARCHAR2 (30)

);

 

 

SQL> INSERT INTO tbl1

(SELECT user_id, username FROM dba_users)

COMMIT;

 

 

SQL>

CREATE OR REPLACE PROCEDURE raheleh.prc_dbmsjob (username IN VARCHAR2)

IS

    userid   NUMBER;

BEGIN

    SELECT id

      INTO userid

      FROM raheleh.tbl1

     WHERE name = username;

END;

 

 

SQL>

DECLARE

    job1   PLS_INTEGER;

BEGIN

    DBMS_JOB.submit (job         => job1,

                                       what        => 'begin raheleh.prc_dbmsjob (''SYSTEM''); end;',

                                       next_date   => TRUNC (SYSDATE) + 1,

                                       interval    => 'trunc(sysdate)+1');

END;

COMMIT;

 

 

SQL> select job, what from user_jobs;

 

       JOB  WHAT

----------  ------------------------------

        22  begin raheleh.prc_dbmsjob ('SYSTEM'); end;

 

 

 

SQL> select job_name, job_action from user_scheduler_jobs;

 

JOB_NAME                       JOB_ACTION

------------------------------   ------------------------------

DBMS_JOB$_22               begin raheleh.prc_dbmsjob ('SYSTEM'); end;

 

 

همانطور که در مثال بالا مشاهده کردید، وقتی یک جاب با DBMS_JOB ایجاد کردیم، اوراکل به صورت اتومات، معادل همان جاب ، یک جاب هم با DBMS_SCHEDULER ایجاد کرد که نام آن با DBMS_JOB$_* شروع میشود.