Blame | Last modification | View Log | RSS feed
CREATE PACKAGE BODY "RELEASE_MANAGER"."PK_ARCHIVE"IS/*------------------------------|| Author: Rupesh Solanki|| Date: 26 October 2006|| Version: 1.0------------------------------*//*---------------------------*/PROCEDURE populate_packages_table ISBEGININSERT INTO archive_manager.PACKAGES(select * from packages where pkg_id not in(select pkg_id from archive_manager.packages));INSERT INTO archive_manager.PROCESSES(select * from processes where proc_id not in(select proc_id from archive_manager.processes));END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE populate_archive_data_table (nrtagid IN release_tags.rtag_id%TYPE)IS/*Reason: To populate the archive_data table with information regarding thenumber of package versions that exist in other releases.*/numcount NUMBER;numusedby NUMBER;numruntime NUMBER;/* Get all the package versions in the release */CURSOR archive_curISSELECT pv_idFROM release_contentWHERE rtag_id = nrtagid;archive_rec archive_cur%ROWTYPE;BEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/OPEN archive_cur;FETCH archive_curINTO archive_rec;WHILE archive_cur%FOUNDLOOP/* How many packages depend on this package version? */SELECT COUNT (*)INTO numusedbyFROM package_dependenciesWHERE dpv_id = archive_rec.pv_id;/* How many project releases use this package version? */SELECT COUNT (*)INTO numcountFROM release_contentWHERE pv_id = archive_rec.pv_id;/* How many packages have this package version as runtimedependency? */SELECT COUNT (*)INTO numruntimeFROM runtime_dependenciesWHERE rtd_id = archive_rec.pv_id;/* Insert into the archive_data table if they are not runtime dependantand package dependant and they exist in that particular release only*/IF numusedby = 0 AND numcount = 1 AND numruntime = 0THENINSERT INTO archive_data(rtag_id, pv_id)VALUES (nrtagid, archive_rec.pv_id);END IF;FETCH archive_curINTO archive_rec;END LOOP;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE migrate_pv_to_archive_schema (nrtagid IN release_tags.rtag_id%TYPE)ISBEGIN/* MIGRATION - PACKAGE_VERSIONS */INSERT INTO archive_manager.package_versionsSELECT *FROM package_versionsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - PACKAGE_BUILD_ENV */INSERT INTO archive_manager.package_build_envSELECT *FROM package_build_envWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM PACKAGE_BUILD_ENV */DELETE FROM package_build_envWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - PACKAGE_BUILD_INFO */INSERT INTO archive_manager.package_build_infoSELECT *FROM package_build_infoWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM PACKAGE_BUILD_info */DELETE FROM package_build_infoWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - UNIT_TESTS */INSERT INTO archive_manager.unit_testsSELECT *FROM unit_testsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM UNIT_TESTS*/DELETE FROM unit_testsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - PACKAGE_PROCESSES */INSERT INTO archive_manager.package_processesSELECT *FROM package_processesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM PACKAGE_PROCESSES*/DELETE FROM package_processesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - PACKAGE_DEPENDENCIES */INSERT INTO archive_manager.package_dependenciesSELECT *FROM package_dependenciesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM PACKAGE_DEPENDENCIES*/DELETE FROM package_dependenciesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - CODE_REVIEWS */INSERT INTO archive_manager.code_reviewsSELECT *FROM code_reviewsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM CODE_REVIEWS*/DELETE FROM code_reviewsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - RUNTIME_DEPENDENCIES*/INSERT INTO archive_manager.runtime_dependenciesSELECT *FROM runtime_dependenciesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM RUNTIME_DEPENDENCIES*/DELETE FROM runtime_dependenciesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - PACKAGE_DOCUMENTS */INSERT INTO archive_manager.package_documentsSELECT *FROM package_documentsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM PACKAGE_DOCUMENTS*/DELETE FROM package_documentsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - PACKAGE_PATCHES */INSERT INTO archive_manager.package_patchesSELECT *FROM package_patchesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM PACKAGE_PATCHES*/DELETE FROM package_patchesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - CQ_ISSUES */INSERT INTO archive_manager.cq_issuesSELECT *FROM cq_issuesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM CQ_ISSUES*/DELETE FROM cq_issuesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - ADDITIONAL_NOTES */INSERT INTO archive_manager.additional_notesSELECT *FROM additional_notesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM ADDITIONAL_NOTES*/DELETE FROM additional_notesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - RELEASE_COMPONENTS */INSERT INTO archive_manager.release_componentsSELECT *FROM release_componentsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM RELEASE_COMPONENTS*/DELETE FROM release_componentsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - IGNORE_WARNINGS */INSERT INTO archive_manager.ignore_warningsSELECT *FROM ignore_warningsWHERE pv_id IN (SELECT pv_idFROMarchive_data);/* PURGE DATA FROM IGNORE_WARNINGS*/DELETE FROM ignore_warningsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM WORK_IN_PROGRESS */DELETE FROM work_in_progressWHERE rtag_id = nrtagid;/* PURGE DATA FROM PLANNED */DELETE FROM plannedWHERE rtag_id = nrtagid;/* MIGRATION - JIRA_ISSUES */INSERT INTO archive_manager.jira_issuesSELECT *FROM jira_issuesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM JIRA_ISSUES*/DELETE FROM jira_issuesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - PRODUCT_COMPONENTS */INSERT INTO archive_manager.product_componentsSELECT *FROM product_componentsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM PRODUCT_COMPONENTS*/DELETE FROM product_componentsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - ACTION_LOG */INSERT INTO archive_manager.action_logSELECT *FROM action_logWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM ACTION_LOG*/DELETE FROM action_logWHERE pv_id IN (SELECT pv_idFROM archive_data);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE migrate_rtag_to_archive_schema (nrtagid IN release_tags.rtag_id%TYPE)ISBEGIN/* MIGRATION - DO_NOT_RIPPLE */INSERT INTO archive_manager.do_not_rippleSELECT *FROM do_not_ripple dnpWHERE rtag_id = nrtagid;/* PURGE DATA FROM DO_NOT_RIPPLE */DELETE FROM do_not_rippleWHERE rtag_id = nrtagid;/* MIGRATION - ADVISORY_RIPPLES*/INSERT INTO archive_manager.advisory_ripplesSELECT *FROM advisory_ripple dnpWHERE rtag_id = nrtagid;/* PURGE DATA FROM ADVISORY_RIPPLES*/DELETE FROM advisory_rippleWHERE rtag_id = nrtagid;/* MIGRATION - RELEASE_CONTENT */INSERT INTO archive_manager.release_contentSELECT *FROM release_contentWHERE rtag_id = nrtagid;/* PURGE DATA FROM RELEASE_CONTENT*/DELETE FROM release_contentWHERE rtag_id = nrtagid;/* MIGRATION - NOTIFICATION_HISTORY */INSERT INTO archive_manager.notification_historySELECT *FROM notification_historyWHERE rtag_id = nrtagid;/* PURGE DATA FROM NOTIFICATION_HISTORY*/DELETE FROM notification_historyWHERE rtag_id = nrtagid;/* MIGRATION - BUILD_ORDER */INSERT INTO archive_manager.build_orderSELECT *FROM build_orderWHERE rtag_id = nrtagid;/* PURGE DATA FROM BUILD_ORDER*/DELETE FROM build_orderWHERE rtag_id = nrtagid;/* MIGRATION - PROJECT_ACTION_LOG */INSERT INTO archive_manager.project_action_logSELECT *FROM project_action_logWHERE rtag_id = nrtagid;/* PURGE DATA FROM PROJECT_ACTION_LOG */DELETE FROM project_action_logWHERE rtag_id = nrtagid;/* MIGRATION - DEPRECATED_PACKAGES */INSERT INTO archive_manager.deprecated_packagesSELECT *FROM deprecated_packagesWHERE rtag_id = nrtagid;/* PURGE DATA FROM DEPRECATED_PACKAGES */DELETE FROM deprecated_packagesWHERE rtag_id = nrtagid;/* MIGRATION - RELEASE_TAGS */INSERT INTO archive_manager.release_tagsSELECT *FROM release_tagsWHERE rtag_id = nrtagid;/* PURGE DATA FROM PACKAGE_VERSIONS*/DELETE FROM package_versionsWHERE pv_id IN (SELECT pv_idFROM archive_data);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE clean_up_archive_data_table (nrtagid IN release_tags.rtag_id%TYPE)ISBEGIN/* Cleaning Up The Archive_Data Table */DELETE FROM archive_dataWHERE rtag_id = nrtagid;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE write_action_log (nuserid IN NUMBER,nrtagid IN release_tags.rtag_id%TYPE)ISBEGIN/* Write Into Archive_Action_Log Table */INSERT INTO archive_action_log(user_id, date_time_stamp, rtag_id,description)VALUES (nuserid, ora_sysdatetime, nrtagid,'Release has been archived to the ARCHIVE_MANAGER schema');END;/*-------------------------------------------------------------------------------------------------------*/END pk_archive;/ALTER PACKAGE "RELEASE_MANAGER"."PK_ARCHIVE"COMPILE BODYPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2008-02-18 13:19:10'/