Old good JOB – für einen anderen User

Über dbms_ijob wurde hier schon geschrieben. Heute sollte ein bestehender Job nicht geändert werden sondern einer ganz neu angelegt werden für einen User „ohne Passwort“.

Was erwartet die Procedure für Parameter

PROCEDURE SUBMIT
 Argument Name    Type                    In/Out
 ---------------- ----------------------- ------
 JOB              BINARY_INTEGER          IN
 LUSER            VARCHAR2                IN
 PUSER            VARCHAR2                IN
 CUSER            VARCHAR2                IN
 NEXT_DATE        DATE                    IN
 INTERVAL         VARCHAR2                IN
 BROKEN           BOOLEAN                 IN
 WHAT             VARCHAR2                IN
 NLSENV           VARCHAR2                IN
 ENV              RAW                     IN

Nun der Aufruf:

DECLARE
    job_num number;
    nlsvar varchar2(4000);
    envvar raw(32);
BEGIN
        SELECT nls_env,misc_env
          INTO nlsvar,envvar
          FROM dba_jobs
         WHERE rownum <2
           AND nls_env IS NOT NULL
           AND misc_env IS NOT NULL
        ;
        SELECT MAX(job)+1
          INTO job_num
          FROM dba_jobs
        ;
        sys.dbms_ijob.submit(
                 job_num
                ,'EC1'
                ,'EC1'
                ,'EC1'
                ,sysdate+1/24
                ,'sysdate + 1/48'
                ,FALSE
                ,'begin pkg_task_job.InitSubscriptionAccountUpdates; end;'
                ,nlsvar
                ,envvar
                )
        ;
        COMMIT;
END;
/

War nicht leicht – aber es klappt – wichtig – nicht so ganz supported!

Schreibe einen Kommentar