Rem drv:
Rem
Rem $Header: emcore/source/oracle/sysman/emdrep/sql/core/10.2.0.4/jobs/jobs_data_upgrade.sql /st_emcore_10.2.0.4.1db11/1 2008/08/01 11:06:40 edemembe Exp $
Rem
Rem jobs_data_upgrade.sql
Rem
Rem Copyright (c) 2007, 2008, Oracle. All rights reserved.
Rem
Rem NAME
Rem jobs_data_upgrade.sql -
Rem
Rem DESCRIPTION
Rem
Rem
Rem NOTES
Rem
Rem
Rem MODIFIED (MM/DD/YY)
Rem edemembe 07/31/08 - Bug 7286326
Rem shnavane 09/12/07 - Fix bug #6391386
Rem lsatyapr 08/27/07 - Move relevant 10.2.0.4 upg from 11.0.0.0
Rem rdabbott 07/28/07 - fix 6194784:delete orphan schedules
Rem rdabbott 08/23/07 - delete_orphans -> delete_orphan_schedules
Rem rdabbott 08/22/07 - prefix recover with EM_ instead of MGMT_
Rem rdabbott 08/17/07 - bug 6327699: clean orphans post upgrade
Rem rdabbott 08/23/07 - delete_orphans -> delete_orphan_schedules
Rem rdabbott 08/22/07 - prefix recover with EM_ instead of MGMT_
Rem rdabbott 08/17/07 - bug 6327699: clean orphans post upgrade
Rem rdabbott 08/27/07 - Backport rdabbott_bug-6327699 from main
Rem rdabbott 07/28/07 - fix 6194784:delete orphan schedules
Rem shnavane 07/23/07 - Fix bug #6034526
Rem lsatyapr 07/25/07 - Backport lsatyapr_bug_6122102a from main
Rem lsatyapr 07/22/07 - Bug6122102 Schedule upg - revise query
Rem lsatyapr 06/15/07 - Backport lsatyapr_bug-6122102 from main
Rem lsatyapr 06/13/07 - Bug6122102 Schedule upgrade in blocks
Rem ashugupt 06/01/07 - Backport ashugupt_bug-5220168 from main
Rem ashugupt 05/28/07 - added EM_JOB_OUTPUT_MAX_LINES
Rem dgiaimo 04/30/07 - Changing 10.2.4.0 to 10.2.0.4
Rem kmanicka 04/26/07 - upgrade for bug 5895148
Rem kmanicka 04/26/07 - Created
Rem
INSERT INTO MGMT_PARAMETERS
(parameter_name, parameter_value, parameter_comment, internal_flag)
VALUES ('EM_JOB_OUTPUT_MAX_LINES', '2000', 'Max lines of step output in the job notifications', 0);
DECLARE
l_database_role VARCHAR2(32);
BEGIN
BEGIN
-- Check to see if this database is in logical standby mode. If it is
-- we need to skip submitting jobs because logical standby doesn't
-- support DBMS_JOBS.
SELECT database_role into l_database_role
from v$database where database_role like '%LOGICAL%';
EXCEPTION
WHEN NO_DATA_FOUND THEN
-- bug 6327699: clean orphans post upgrade
-- submit a dbms job so this will happen '1 day later'
EM_JOB_RECOVERY.submit_dbms_job(
'EM_JOB_RECOVERY.delete_orphan_schedules;', SYSDATE+1);
--bug 6391386: fix large param related issues
EM_JOB_RECOVERY.submit_dbms_job(
'EM_JOB_RECOVERY.fix_large_params_ref_count;', SYSDATE+4/24);
EM_JOB_RECOVERY.submit_dbms_job(
'EM_JOB_RECOVERY.delete_orphan_large_params;', SYSDATE+2);
END;
END;
/
-- Perform batch updates of various data
DECLARE
TYPE ROWID_ARRAY IS TABLE OF ROWID;
CURSOR job_sch_cur IS
SELECT ROWID FROM MGMT_JOB_SCHEDULE s
WHERE frequency_code = 3
AND (interval IS NULL OR interval < 1)
AND EXISTS (SELECT 1 FROM MGMT_JOB j WHERE j.schedule_id=s.schedule_id);
l_rowids ROWID_ARRAY;
l_commit_freq INTEGER;
-- TODO: Move this function out and use EM_JOB_UPGRADE
FUNCTION get_commit_frequency (p_str IN VARCHAR2) RETURN INTEGER IS l_freq INTEGER := 50000;
BEGIN
SELECT parameter_value
INTO l_freq
FROM mgmt_parameters
WHERE parameter_name = p_str;
RETURN l_freq;
EXCEPTION
WHEN others THEN
RETURN l_freq;
END;
BEGIN
OPEN job_sch_cur;
l_commit_freq := get_commit_frequency('job_schedule_upgrade_batchsize');
LOOP
FETCH job_sch_cur BULK COLLECT INTO l_rowids LIMIT l_commit_freq;
EXIT WHEN l_rowids.COUNT = 0;
FORALL j IN l_rowids.FIRST..l_rowids.LAST
UPDATE MGMT_JOB_SCHEDULE
SET interval = 1
WHERE ROWID = l_rowids(j);
COMMIT;
END LOOP;
CLOSE job_sch_cur;
END;
/