Blame | Last modification | View Log | RSS feed
CREATE PROCEDURE "RELEASE_MANAGER"."RENAME_PACKAGE_VERSION" ( NNpv_id IN NUMBER,SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,cBuildType IN CHAR,NNuser_id IN NUMBER,errMessage OUT VARCHAR2 ) IS/* ---------------------------------------------------------------------------Version: 3.2--------------------------------------------------------------------------- */sPackageVersion VARCHAR2(4000);sLabel VARCHAR2(4000) := NULL;OldPkgVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;CURSOR package_versions_cur ISSELECT pv_idFROM package_versionsWHERE pkg_id IN ( SELECT pkg_id FROM package_versions WHERE pv_id = NNpv_id )AND pkg_version = SSpkg_version;package_versions_rec package_versions_cur%ROWTYPE;BEGIN/* ---------------------------------------------------- *//* Find if package_version exists *//* ---------------------------------------------------- */errMessage := NULL;-- Get previous versionSELECT pv.PKG_VERSION INTO OldPkgVersionFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID = NNpv_id;sPackageVersion := SSpkg_version;IF OldPkgVersion != sPackageVersion THENOPEN package_versions_cur;FETCH package_versions_cur INTO package_versions_rec;IF package_versions_cur%NOTFOUNDTHEN-- Split current version in partsSplit_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );-- Automated built configIF (cBuildType = 'A') THENsPackageVersion := '('|| NNpv_id ||')'|| SSV_EXT; -- Make sure that version is still uniqueEND IF;-- Packge version not found, hence rename it.UPDATE package_versionsSET pkg_version = sPackageVersion,v_mm = SSV_MM,v_nmm = SSV_NMM,v_ext = SSV_EXT,modified_stamp = ORA_SYSDATETIME,modifier_id = NNuser_id,build_type = cBuildType,pkg_label = NULLWHERE pv_id = NNpv_id;IF (cBuildType = 'A') THENsLabel := GET_AUTOMATED_LABEL( NNpv_id );UPDATE PACKAGE_VERSIONS pv SETpv.PKG_LABEL = sLabelWHERE pv_id = NNpv_id;END IF;/* LOG ACTION */Log_Action ( NNpv_id, 'rename', NNuser_id, 'From '|| OldPkgVersion ||' to '|| SSpkg_version );ELSE-- Package version exists. Cannot proceed.errMessage := 'enum_MSG_VERSION_EXISTS';END IF;CLOSE package_versions_cur;END IF;END Rename_Package_Version;/