Inhaltsverzeichnis
Oracle DBMS_JOB Migration nach Scheduler in Oracle 19c
19c
Ab der Version 19c ist DMBS_JOB entgültig Geschichte, bereits seit der Version 12.2.0.1 ist ja das Package als „deprecated“ dokumentiert.
Wird nun in 19c eine Job über DBMS_JOB anleget wird im Hintergrund immer ein Oracle Scheduler Job erzeugt.
Der DBMS_JOB ist dann zwar in den „alten“ Job Views als solcher sichtbar, wird aber nur über die Tabelle „SYS.SCHEDULER$_DBMSJOB_MAP“ auf den den eigentlichen Scheduler Job gematched.
Das ist auch in DD VIEW DBA_JOBS ersichtlich:
... FROM sys.scheduler$_dbmsjob_map m LEFT OUTER JOIN sys.obj$ o ON (o.name = m.job_name) LEFT OUTER JOIN sys.user$ u ON (u.name = m.job_owner) LEFT OUTER JOIN sys.scheduler$_job j ON (j.obj# = o.obj#) WHERE o.owner# = u.user#;
Upgrade Verhalten
Wird ein Datenbank nach 19c migriert werden damit automatisch alle diese Jobs umgestellt.
Hier ist beim Upgrade aber folgende Info zu beachten ⇒ https://mikedietrichde.com/2020/05/21/dbms_job-one-off-patch-needed-for-oracle-19-3-0-19-7-0/ und Support Note: 2645984.1 – Delete On SYS.SCHEDULER$_DBMSJOB_MAP Causing Row Locks .
Wie:
BEGIN DBMS_SCHEDULER.SET_ATTRIBUTE ( name => 'GPI.DB_TRANS_JOB' ,attribute => 'NLS_ENV' ,VALUE => q'[ NLS_LANGUAGE='GERMAN' NLS_TERRITORY='GERMANY' NLS_CURRENCY='€' NLS_ISO_CURRENCY='GERMANY' NLS_NUMERIC_CHARACTERS=',.' NLS_DATE_FORMAT='DD.MM.YYY' NLS_DATE_LANGUAGE='GERMAN' NLS_SORT='XGERMAN' ]' ); END;
Mehr zu Oracle Scheduler
Mehr zu dem Thema ⇒ Der Oracle Job Scheduler 10g/11g/12c/18c/19c .