===== 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#; {{ :dba:dbms_job_to_dbms_schedule_19c.jpg | 19c DMBS_JOB DBMS_SCHEDULE }} ---- ==== 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 . NLS Einstellungen explizit auf den Job einstellen, falls diese nicht gleich der DB Standard Einstellungen sind! 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 => [[dba:oracle_scheduler|Der Oracle Job Scheduler 10g/11g/12c/18c/19c]] . ---- ==== Quellen ==== Web: * https://www.dbconcepts.at/oracle-19c-dbms_job-konvertierung/