Blame | Last modification | View Log | RSS feed
CREATE PROCEDURE "RELEASE_MANAGER"."UNDEPRECATE_PACKAGE" (nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,nRtagId IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,nPkgId IN DEPRECATED_PACKAGES.PKG_ID%TYPE,nUserId IN NUMBER) ISext VARCHAR2(50);PvIdList VARCHAR2(32767);nIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();PvId NUMBER;sComments VARCHAR2(32767);BEGIN--Extract the package extensionSELECT V_EXT into extFROM PACKAGE_VERSIONSWHERE PV_ID = nPvId;--SELECT COMMENTS into sComments--FROM DEPRECATED_PACKAGES--WHERE RTAG_ID = nRtagId--AND V_EXT = ext--AND PKG_ID = nPkgId;--SELECT PV_ID into PvIdList FROM--RELEASE_CONTENT WHERE RTAG_ID = nRtagId--AND PKG_STATE = 6--AND PV_ID NOT IN nPvId;IF ext IS NOT NULL THEN-- Undeprecate PackageDELETE FROM DEPRECATED_PACKAGESWHERE RTAG_ID = nRtagIdAND PKG_ID = nPkgIdAND V_EXT = ext;UPDATE RELEASE_CONTENTSET PKG_ID = NULL, DEPRECATED_STATE = NULLWHERE RTAG_ID = nRtagIdAND PV_ID IN (SELECT PV.PV_IDFROM PACKAGE_VERSIONS PV, PACKAGES PKGWHERE PKG.PKG_ID = PV.PKG_IDAND PKG.PKG_ID = nPkgIdAND PV.V_EXT = extUNIONSELECT DISTINCTqry.PV_IDFROM (SELECT dep.*,LEVEL AS LEVEL_NUMFROM PACKAGE_DEPENDENCIES depSTART WITH dep.DPV_ID IN ( nPvId )--AND dep.DPV_ID NOT IN ( SELECT PV_ID FROM RELEASE_CONTENT WHERE RTAG_ID = nRtagId AND PKG_STATE = 6 )CONNECT BY PRIOR dep.PV_ID = dep.DPV_ID) qry,PACKAGES pkg,PACKAGE_VERSIONS pv,RELEASE_CONTENT rcWHERE qry.PV_ID = pv.PV_ID AND pv.PKG_ID = pkg.PKG_IDAND rc.RTAG_ID = nRtagId AND rc.PV_ID = qry.PV_ID);ELSE-- Undeprecate PackageDELETE FROM DEPRECATED_PACKAGESWHERE RTAG_ID = nRtagIdAND PKG_ID = nPkgIdAND V_EXT IS NULL;UPDATE RELEASE_CONTENTSET PKG_ID = NULL, DEPRECATED_STATE = NULLWHERE RTAG_ID = nRtagIdAND PV_ID IN (SELECT PV.PV_IDFROM PACKAGE_VERSIONS PV, PACKAGES PKGWHERE PKG.PKG_ID = PV.PKG_IDAND PKG.PKG_ID = nPkgIdAND PV.V_EXT IS NULLUNIONSELECT DISTINCTqry.PV_IDFROM (SELECT dep.*,LEVEL AS LEVEL_NUMFROM PACKAGE_DEPENDENCIES depSTART WITH dep.DPV_ID IN ( nPvId )--AND dep.DPV_ID NOT IN ( SELECT PV_ID FROM RELEASE_CONTENT WHERE RTAG_ID = nRtagId AND PKG_STATE = 6 )CONNECT BY PRIOR dep.PV_ID = dep.DPV_ID) qry,PACKAGES pkg,PACKAGE_VERSIONS pv,RELEASE_CONTENT rcWHERE qry.PV_ID = pv.PV_ID AND pv.PKG_ID = pkg.PKG_IDAND rc.RTAG_ID = nRtagId AND rc.PV_ID = qry.PV_ID);END IF;--IF PvIdList IS NOT NULL THEN-- nIdCollector := IN_LIST_NUMBER ( PvIdList );-- FOR i IN 1..nIdCollector.COUNT-- LOOP-- PvId := nIdCollector(i);-- Deprecate_Package (nPvId, nRtagId, nPkgId, sComments, nUserId );-- END LOOP;--END IF;Rebuild_environment(nRtagId);END Undeprecate_Package;/