1: PACKAGE BODY AD_ZD_PREP as
2: /* $Header: ADZDPRPB.pls 120.46.12020000.12 2013/05/20 02:28:33 sstomar ship $ */
3:
4: c_package constant varchar2(80) := 'ad.plsql.ad_zd_prep.';
5: g_apps_ne_schema constant varchar2(30) :='APPS_NE';
1: PACKAGE BODY AD_ZD_PREP as
2: /* $Header: ADZDPRPB.pls 120.46.12020000.12 2013/05/20 02:28:33 sstomar ship $ */
3:
4: c_package constant varchar2(80) := 'ad.plsql.ad_zd_prep.';
5: g_apps_ne_schema constant varchar2(30) :='APPS_NE';
6: g_xla_schema constant varchar2(10) :='XLA';
7:
8: type col_owners is table of number index by varchar2(150);
39: procedure log(x_module varchar2,
40: x_log_type varchar2,
41: x_message varchar2 ) is
42: begin
43: ad_zd_log.Message( x_module=>x_module, x_log_type => x_log_type, x_message => x_message );
44: end;
45:
46: --
47: -- execute dynamic SQL statement
52: procedure exec(X_SQL in clob, X_LOG_MOD in varchar2, X_IGNORE in boolean default false)
53: is
54: l_module varchar2(80) := c_package || 'exec';
55: begin
56: ad_zd.exec(x_sql, x_log_mod, x_ignore);
57: exception
58: when others then
59: -- Ignore DROP TYPE error but log error at STATEMENT level.
60: -- -02303: cannot drop or replace a type with type or table dependents
67: log(l_module, 'ERROR', 'ERROR: ->['|| substr(sqlerrm,1,400) || ' ] ' );
68: end if;
69: end exec;
70:
71: -- Calls ad_zd_parallel_exec.load with same parameters.
72: procedure LOAD(
73: X_PHASE varchar2,
74: X_SQL clob)
75: is
75: is
76: begin
77: -- SQLs from DB Prep flow can NOT be duplicate, so
78: -- should not be checked for duplicity i.e. x_unique => false.
79: ad_zd_parallel_exec.load(x_phase, x_sql, false);
80: end;
81:
82: --
83: --
219: begin
220: if(x_exec) then
221: exec('begin dbms_utility.compile_schema(schema=>'''||g_apps_ne_schema||'''); end;', l_module);
222: else
223: load(x_phase=> ad_zd_parallel_exec.c_phase_compile_type,
224: x_sql => 'begin dbms_utility.compile_schema(schema=>'''|| g_apps_ne_schema||'''); end;');
225: end if;
226: end compile_ne_schema;
227:
408: l_found := c_xml_schemas%found;
409: close c_xml_schemas;
410:
411: if(l_found or (l_count_post > l_count_pre) ) then
412: ad_zd.error(l_module, 'XML SCHEMAS not migrated to target user successfully ' ||
413: 'or migration process introduced some new Invalid-objects');
414: end if;
415:
416: -- Clean up DB table; in case of error, we want to preserve it for debugging.
420: end if;
421: log(l_module, 'PROCEDURE', 'end');
422: exception
423: when others then
424: ad_zd.error(l_module, substr(sqlerrm, 1, 255));
425:
426: end MOVE_XML_SCHEMAS;
427:
428:
487:
488: begin
489:
490: for queue in c_queues loop
491: load(x_phase => ad_zd_parallel_exec.c_phase_drop_unused_object,
492: x_sql => 'begin ad_zd_prep.drop_queues('
493: || '''' || queue.owner || ''', '''
494: || queue.name || '''); end; ');
495: end loop;
488: begin
489:
490: for queue in c_queues loop
491: load(x_phase => ad_zd_parallel_exec.c_phase_drop_unused_object,
492: x_sql => 'begin ad_zd_prep.drop_queues('
493: || '''' || queue.owner || ''', '''
494: || queue.name || '''); end; ');
495: end loop;
496: end DROP_TEMP_QUEUES;
878:
879: for t in all_types loop
880: if( is_type_evolved(t.referenced_owner, t.referenced_name) <> 'Y') then
881: -- normal UDTs
882: load(x_phase => ad_zd_parallel_exec.c_phase_copy_type,
883: x_sql => 'begin ad_zd_prep.copy_type('''
884: || t.referenced_owner || ''', '''
885: || t.referenced_name || ''','''
886: || g_apps_ne_schema || '''); end;');
879: for t in all_types loop
880: if( is_type_evolved(t.referenced_owner, t.referenced_name) <> 'Y') then
881: -- normal UDTs
882: load(x_phase => ad_zd_parallel_exec.c_phase_copy_type,
883: x_sql => 'begin ad_zd_prep.copy_type('''
884: || t.referenced_owner || ''', '''
885: || t.referenced_name || ''','''
886: || g_apps_ne_schema || '''); end;');
887:
892: put_obj_to_recompile(t.referenced_owner, t.referenced_name);
893:
894: -- FIX_TYPE will check dependency, if exist, will try to fix before
895: -- dropping a type.
896: load(x_phase => ad_zd_parallel_exec.c_phase_fix_type,
897: x_sql => 'begin ad_zd_prep.fix_type('''
898: || t.referenced_owner || ''', '''
899: || t.referenced_name || '''); end; ');
900:
893:
894: -- FIX_TYPE will check dependency, if exist, will try to fix before
895: -- dropping a type.
896: load(x_phase => ad_zd_parallel_exec.c_phase_fix_type,
897: x_sql => 'begin ad_zd_prep.fix_type('''
898: || t.referenced_owner || ''', '''
899: || t.referenced_name || '''); end; ');
900:
901: end if;
916: end COPY_TYPES;
917:
918:
919: --
920: -- Loads the DDLs into AD_ZD_DDL_HANDLER from the global evolved_type or
921: -- from sorted global list.
922: --
923: procedure INSTALL_EVOLVED_TYPES
924: as
985: l_type_name := l_evolve_type_list(i).type_name;
986:
987: exec('GRANT EXECUTE ON "'||g_apps_ne_schema||'"."' || l_type_name || '" TO PUBLIC ', l_module, true);
988:
989: load(x_phase=> ad_zd_parallel_exec.c_phase_fix_type,
990: x_sql => 'begin ad_zd_prep.fix_type('
991: || '''' || l_owner || ''', '''
992: || l_type_name || '''); end; ');
993:
986:
987: exec('GRANT EXECUTE ON "'||g_apps_ne_schema||'"."' || l_type_name || '" TO PUBLIC ', l_module, true);
988:
989: load(x_phase=> ad_zd_parallel_exec.c_phase_fix_type,
990: x_sql => 'begin ad_zd_prep.fix_type('
991: || '''' || l_owner || ''', '''
992: || l_type_name || '''); end; ');
993:
994: end loop;
1168: -- bug 12747238
1169: put_obj_to_recompile(et.referenced_owner, et.referenced_name);
1170: end loop; -- For ALL EVOLVED-TYPES
1171:
1172: -- Install DDLs from global list to AD_ZD_DDL_HANDLER table
1173: install_evolved_types;
1174: recompile_types;
1175: compile_ne_schema(true);
1176: log(l_module, 'PROCEDURE', 'end');
1235:
1236: if(l_count > 0 ) then
1237: -- Note: Evolved types should be created in a proper order and dependent TYPEs should be VALID.
1238: -- otherwise ALTER TYPE command will fail. So let it be run by a single worker.
1239: load(x_phase => ad_zd_parallel_exec.c_phase_copy_evolved_type,
1240: x_sql => 'begin ad_zd_prep.copy_evolved_types; end; ');
1241:
1242: end if;
1243: log(l_module, 'PROCEDURE', 'end');
1236: if(l_count > 0 ) then
1237: -- Note: Evolved types should be created in a proper order and dependent TYPEs should be VALID.
1238: -- otherwise ALTER TYPE command will fail. So let it be run by a single worker.
1239: load(x_phase => ad_zd_parallel_exec.c_phase_copy_evolved_type,
1240: x_sql => 'begin ad_zd_prep.copy_evolved_types; end; ');
1241:
1242: end if;
1243: log(l_module, 'PROCEDURE', 'end');
1244: end COPY_EVOLVED_TYPES_WRAPPER;
1320: -- sys.dbms_objects_utils.update_types('APPS', APPS_NE', NULL, TRUE) , instead of
1321: -- calling for specific TYPE
1322: --
1323: if(l_flag) then
1324: l_sql := 'begin ad_zd_prep.fix_types(' ||
1325: 'x_source_schema =>''' || g_udt_obj_list(idx).owner || ''', ' ||
1326: 'x_target_schema => '''|| g_apps_ne_schema || ''') ; end;' ;
1327:
1328: load(x_phase => ad_zd_parallel_exec.c_phase_fix_column,
1324: l_sql := 'begin ad_zd_prep.fix_types(' ||
1325: 'x_source_schema =>''' || g_udt_obj_list(idx).owner || ''', ' ||
1326: 'x_target_schema => '''|| g_apps_ne_schema || ''') ; end;' ;
1327:
1328: load(x_phase => ad_zd_parallel_exec.c_phase_fix_column,
1329: x_sql => l_sql);
1330:
1331: l_type_owner(g_udt_obj_list(idx).owner) := 1;
1332: end if;
1369: fetch c_queues INTO l_queue, l_queue_type;
1370: --
1371: -- Merging with COPY_TYPE phase as both are independent.
1372: while (c_queues%found) loop
1373: load(x_phase => ad_zd_parallel_exec.c_phase_copy_type,
1374: x_sql => 'begin ad_zd_prep.stop_queue(''' || l_queue ||'''); end;');
1375:
1376: fetch c_queues INTO l_queue, l_queue_type;
1377: end loop;
1370: --
1371: -- Merging with COPY_TYPE phase as both are independent.
1372: while (c_queues%found) loop
1373: load(x_phase => ad_zd_parallel_exec.c_phase_copy_type,
1374: x_sql => 'begin ad_zd_prep.stop_queue(''' || l_queue ||'''); end;');
1375:
1376: fetch c_queues INTO l_queue, l_queue_type;
1377: end loop;
1378: -- close cursor
1381: fix_column(x_owner, x_table, x_column);
1382:
1383: -- This phase should be executed after DROP_OBJECT, so if still there is any UDT reference
1384: -- , can be fixed.
1385: load(x_phase => ad_zd_parallel_exec.c_phase_recreate_aq_object,
1386: x_sql => 'begin ad_zd_prep.recreate_aq_object(''' || x_owner ||''', ''' || x_table ||'''); end;');
1387:
1388: log(l_module, 'PROCEDURE', 'end');
1389: end FIX_QUEUE;
1382:
1383: -- This phase should be executed after DROP_OBJECT, so if still there is any UDT reference
1384: -- , can be fixed.
1385: load(x_phase => ad_zd_parallel_exec.c_phase_recreate_aq_object,
1386: x_sql => 'begin ad_zd_prep.recreate_aq_object(''' || x_owner ||''', ''' || x_table ||'''); end;');
1387:
1388: log(l_module, 'PROCEDURE', 'end');
1389: end FIX_QUEUE;
1390:
1619: 'TRIGGER','FUNCTION'));
1620: begin
1621: log(l_module, 'PROCEDURE', 'begin');
1622: for rec in c_public_synonyms loop
1623: load(x_phase=> ad_zd_parallel_exec.c_phase_fix_public_synonym,
1624: x_sql => 'begin ad_zd_prep.fix_public_synonym(''' || rec.synonym_name || ''', ''' ||
1625: rec.table_owner || ''',''' || rec.table_name ||''','''|| rec.db_link || '''); end;');
1626:
1627: end loop;
1620: begin
1621: log(l_module, 'PROCEDURE', 'begin');
1622: for rec in c_public_synonyms loop
1623: load(x_phase=> ad_zd_parallel_exec.c_phase_fix_public_synonym,
1624: x_sql => 'begin ad_zd_prep.fix_public_synonym(''' || rec.synonym_name || ''', ''' ||
1625: rec.table_owner || ''',''' || rec.table_name ||''','''|| rec.db_link || '''); end;');
1626:
1627: end loop;
1628: log(l_module, 'PROCEDURE', 'end');
1782:
1783: begin
1784: log(l_module, 'PROCEDURE', 'begin');
1785: for rec in ctxpkg loop
1786: load(x_phase => ad_zd_parallel_exec.c_phase_drop_object,
1787: x_sql => 'begin ad_zd_prep.drop_ctxsys_pkg(''' || rec.name || '''); end;');
1788:
1789: end loop;
1790:
1783: begin
1784: log(l_module, 'PROCEDURE', 'begin');
1785: for rec in ctxpkg loop
1786: load(x_phase => ad_zd_parallel_exec.c_phase_drop_object,
1787: x_sql => 'begin ad_zd_prep.drop_ctxsys_pkg(''' || rec.name || '''); end;');
1788:
1789: end loop;
1790:
1791: -- drop problematic synonyms
1789: end loop;
1790:
1791: -- drop problematic synonyms
1792: for rec in c_synonyms loop
1793: load(x_phase => ad_zd_parallel_exec.c_phase_drop_object,
1794: x_sql => 'begin ad_zd_prep.drop_ctxsys_synonym(''' || rec.synonym_name || '''); end;');
1795: end loop;
1796: log(l_module, 'PROCEDURE', 'end');
1797: end FIX_CTXSYS;
1790:
1791: -- drop problematic synonyms
1792: for rec in c_synonyms loop
1793: load(x_phase => ad_zd_parallel_exec.c_phase_drop_object,
1794: x_sql => 'begin ad_zd_prep.drop_ctxsys_synonym(''' || rec.synonym_name || '''); end;');
1795: end loop;
1796: log(l_module, 'PROCEDURE', 'end');
1797: end FIX_CTXSYS;
1798:
1877: and not exists
1878: ( select 'X'
1879: from dba_views v
1880: where v.owner = m.owner
1881: and v.view_name = ad_zd_mview.get_mvq_name(m.mview_name) )
1882: union
1883: select v.owner owner,
1884: ad_zd_mview.get_mv_name(v.view_name) name
1885: from dba_views v
1880: where v.owner = m.owner
1881: and v.view_name = ad_zd_mview.get_mvq_name(m.mview_name) )
1882: union
1883: select v.owner owner,
1884: ad_zd_mview.get_mv_name(v.view_name) name
1885: from dba_views v
1886: where v.view_name like '%'||'#'
1887: and v.editioning_view = 'N'
1888: and v.owner =x_user
1888: and v.owner =x_user
1889: and not exists
1890: ( select 'X' from dba_objects m
1891: where m.owner = v.owner
1892: and m.object_name = ad_zd_mview.get_mv_name(v.view_name)
1893: and m.object_type = 'MATERIALIZED VIEW'
1894: and m.status = 'VALID' );
1895:
1896:
1932:
1933: -- This is fine to run XML schema mover for all users as it will pick-up those
1934: -- users which are registered in fnd_oracle_userid (Only cost here is performance)
1935: -- TODO: Wait for DB fix 16286729, otherwise locking issue might occur.
1936: ad_zd_prep.move_xml_schemas;
1937:
1938: -- CASE#3: MV is dependent on function, throw error as this can be fixed automatically.
1939: when (l_invalidated_object.d_type = 42 and
1940: l_invalidated_object.p_type = 8) then
1952: -- Expand MVs
1953: -- TODO: This ideally should be done after upgrading Tables of this user
1954: for l_mv in C_MVS loop
1955: log(l_module, 'STATEMENT', 'Fix MV: ' || l_mv.owner || '.' || l_mv.name);
1956: ad_zd_mview.upgrade(l_mv.owner, l_mv.name);
1957: end loop;
1958: end case;
1959: end loop;
1960:
1961: -- Fix public synonyms.
1962: -- NOTE: Public synonyms will NOT have any record in sys.dependencies$ table
1963: for l_rec in c_public_synonyms loop
1964: log(l_module, 'STATEMENT', 'Fix PUBLIC synonym: ' || l_rec.synonym_name);
1965: ad_zd_prep.fix_public_synonym(l_rec.synonym_name, l_rec.table_owner, l_rec.table_name, l_rec.db_link);
1966: end loop;
1967:
1968: -- If still have noneditioned objects dependent on editioned objects?
1969: for l_invalidated_object in c_invalidated_objects(x_user) loop
2068: end;
2069:
2070: log(l_module, 'STATEMENT', 'Upgrade custom tables owned by: '|| x_user || ' user');
2071: for l_rec in c_tables loop
2072: ad_zd_table.upgrade(l_rec.table_owner, l_rec.table_name);
2073: end loop;
2074:
2075: commit;
2076: log(l_module, 'STATEMENT', 'end');
2117: begin
2118: log(l_module, 'PROCEDURE', 'begin');
2119:
2120: for rec in c_users loop
2121: load(x_phase => ad_zd_parallel_exec.c_phase_enable_editioning,
2122: x_sql => 'begin ad_zd_prep.enable_user_4edition('''||rec.username||'''); end;');
2123:
2124: end loop;
2125: log(l_module, 'PROCEDURE', 'end');
2118: log(l_module, 'PROCEDURE', 'begin');
2119:
2120: for rec in c_users loop
2121: load(x_phase => ad_zd_parallel_exec.c_phase_enable_editioning,
2122: x_sql => 'begin ad_zd_prep.enable_user_4edition('''||rec.username||'''); end;');
2123:
2124: end loop;
2125: log(l_module, 'PROCEDURE', 'end');
2126: end ENABLE_EDITIONS;
2137:
2138: begin
2139:
2140: log(c_module, 'PROCEDURE', 'begin' );
2141: dbms_application_info.set_module('AD_ZD_PREP', 'DDL GENERATION');
2142:
2143: log(c_module, 'STATEMENT', 'Cleaning up AD_ZD_DDL_HANDLER table' );
2144:
2145: -- **** Clean ONLY DB PREP data, as SEED-UPGRADE data
2139:
2140: log(c_module, 'PROCEDURE', 'begin' );
2141: dbms_application_info.set_module('AD_ZD_PREP', 'DDL GENERATION');
2142:
2143: log(c_module, 'STATEMENT', 'Cleaning up AD_ZD_DDL_HANDLER table' );
2144:
2145: -- **** Clean ONLY DB PREP data, as SEED-UPGRADE data
2146: -- has already been populated *****.
2147: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_drop_unused_object);
2143: log(c_module, 'STATEMENT', 'Cleaning up AD_ZD_DDL_HANDLER table' );
2144:
2145: -- **** Clean ONLY DB PREP data, as SEED-UPGRADE data
2146: -- has already been populated *****.
2147: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_drop_unused_object);
2148: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_copy_type);
2149: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_compile_type);
2150: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_copy_evolved_type);
2151: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_column);
2144:
2145: -- **** Clean ONLY DB PREP data, as SEED-UPGRADE data
2146: -- has already been populated *****.
2147: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_drop_unused_object);
2148: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_copy_type);
2149: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_compile_type);
2150: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_copy_evolved_type);
2151: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_column);
2152: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_type);
2145: -- **** Clean ONLY DB PREP data, as SEED-UPGRADE data
2146: -- has already been populated *****.
2147: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_drop_unused_object);
2148: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_copy_type);
2149: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_compile_type);
2150: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_copy_evolved_type);
2151: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_column);
2152: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_type);
2153: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_public_synonym);
2146: -- has already been populated *****.
2147: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_drop_unused_object);
2148: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_copy_type);
2149: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_compile_type);
2150: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_copy_evolved_type);
2151: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_column);
2152: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_type);
2153: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_public_synonym);
2154: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_recreate_aq_object);
2147: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_drop_unused_object);
2148: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_copy_type);
2149: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_compile_type);
2150: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_copy_evolved_type);
2151: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_column);
2152: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_type);
2153: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_public_synonym);
2154: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_recreate_aq_object);
2155: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_drop_object);
2148: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_copy_type);
2149: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_compile_type);
2150: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_copy_evolved_type);
2151: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_column);
2152: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_type);
2153: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_public_synonym);
2154: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_recreate_aq_object);
2155: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_drop_object);
2156: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_enable_editioning);
2149: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_compile_type);
2150: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_copy_evolved_type);
2151: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_column);
2152: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_type);
2153: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_public_synonym);
2154: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_recreate_aq_object);
2155: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_drop_object);
2156: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_enable_editioning);
2157: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_upgrade_table);
2150: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_copy_evolved_type);
2151: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_column);
2152: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_type);
2153: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_public_synonym);
2154: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_recreate_aq_object);
2155: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_drop_object);
2156: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_enable_editioning);
2157: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_upgrade_table);
2158: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_upgrade_mview);
2151: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_column);
2152: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_type);
2153: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_public_synonym);
2154: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_recreate_aq_object);
2155: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_drop_object);
2156: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_enable_editioning);
2157: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_upgrade_table);
2158: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_upgrade_mview);
2159:
2152: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_type);
2153: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_public_synonym);
2154: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_recreate_aq_object);
2155: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_drop_object);
2156: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_enable_editioning);
2157: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_upgrade_table);
2158: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_upgrade_mview);
2159:
2160: -- STEP#1)
2153: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_fix_public_synonym);
2154: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_recreate_aq_object);
2155: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_drop_object);
2156: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_enable_editioning);
2157: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_upgrade_table);
2158: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_upgrade_mview);
2159:
2160: -- STEP#1)
2161: log(c_module, 'STATEMENT', 'Invoking drop_temp_queues ' );
2154: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_recreate_aq_object);
2155: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_drop_object);
2156: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_enable_editioning);
2157: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_upgrade_table);
2158: ad_zd_parallel_exec.cleanup(ad_zd_parallel_exec.c_phase_upgrade_mview);
2159:
2160: -- STEP#1)
2161: log(c_module, 'STATEMENT', 'Invoking drop_temp_queues ' );
2162: drop_temp_queues;
2187: enable_editions;
2188: commit;
2189:
2190: -- STEP#2) Materialized Views
2191: log(c_module, 'STATEMENT', 'Invoking ad_zd_mview.upgrade_db API.' );
2192: ad_zd_mview.upgrade_db(0);
2193: commit; --
2194:
2195: log(c_module, 'STATEMENT', 'Invoking ad_zd_table.upgrade_db API.' );
2188: commit;
2189:
2190: -- STEP#2) Materialized Views
2191: log(c_module, 'STATEMENT', 'Invoking ad_zd_mview.upgrade_db API.' );
2192: ad_zd_mview.upgrade_db(0);
2193: commit; --
2194:
2195: log(c_module, 'STATEMENT', 'Invoking ad_zd_table.upgrade_db API.' );
2196: ad_zd_table.upgrade_db;
2191: log(c_module, 'STATEMENT', 'Invoking ad_zd_mview.upgrade_db API.' );
2192: ad_zd_mview.upgrade_db(0);
2193: commit; --
2194:
2195: log(c_module, 'STATEMENT', 'Invoking ad_zd_table.upgrade_db API.' );
2196: ad_zd_table.upgrade_db;
2197: commit;
2198: log(c_module, 'PROCEDURE','end' );
2199: exception
2192: ad_zd_mview.upgrade_db(0);
2193: commit; --
2194:
2195: log(c_module, 'STATEMENT', 'Invoking ad_zd_table.upgrade_db API.' );
2196: ad_zd_table.upgrade_db;
2197: commit;
2198: log(c_module, 'PROCEDURE','end' );
2199: exception
2200: when others then
2204: 'E-Business Suite Database Preparation for Editions: '
2205: || sqlcode || ' ' || substr(sqlerrm, 1, 64));
2206: end do_prep;
2207:
2208: end AD_ZD_PREP;