Blame | Last modification | View Log | RSS feed
CREATE PROCEDURE "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,NNuser_id IN NUMBER,retPV_ID OUT NUMBER,nCloneFromPvId IN NUMBER DEFAULT NULL ) IS/* ---------------------------------------------------------------------------Version: 4.0--------------------------------------------------------------------------- */parPkg_id NUMBER;parPv_id NUMBER;cloneFrom_pv_id NUMBER;SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;CURSOR packages_cur ISSELECT pkg_id FROM PACKAGESWHERE pkg_name = SSpkg_name;packages_rec packages_cur%ROWTYPE;CURSOR package_versions_cur ISSELECT pv_id FROM PACKAGE_VERSIONSWHERE pkg_id = parPkg_idAND pkg_version = SSpkg_version;package_versions_rec package_versions_cur%ROWTYPE;CURSOR clone_package_versions_cur ISSELECT MAX(pv_id) AS pv_idFROM PACKAGE_VERSIONSWHERE pkg_id = parPkg_idAND NVL(v_ext,'LINK_A_NULL') = NVL(SSV_EXT,'LINK_A_NULL');clone_package_versions_rec clone_package_versions_cur%ROWTYPE;BEGIN/* -------------------------------------------- *//* Find if pkg_name exists and seed if required *//* -------------------------------------------- */OPEN packages_cur;FETCH packages_cur INTO packages_rec;IF packages_cur%NOTFOUNDTHEN/* INSERT into packages table */SELECT SEQ_PKG_ID.NEXTVAL INTO parPkg_id FROM DUAL;INSERT INTO PACKAGES ( pkg_id, pkg_name ) VALUES ( parPkg_id, SSpkg_name );ELSEparPkg_id := packages_rec.pkg_id;END IF;CLOSE packages_cur;/* ---------------------------------------------------- *//* Find if package_version exists and seed if required *//* ---------------------------------------------------- */OPEN package_versions_cur;FETCH package_versions_cur INTO package_versions_rec;IF package_versions_cur%NOTFOUNDTHENSELECT SEQ_PV_ID.NEXTVAL INTO parPv_id FROM DUAL;/* LOG ACTION */Log_Action ( parPv_id, 'new_version', NNuser_id,'New package version: '|| SSpkg_version );Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );/* Find similar pkg_name + ext to clone from */OPEN clone_package_versions_cur;FETCH clone_package_versions_cur INTO clone_package_versions_rec;IF NOT clone_package_versions_rec.pv_id IS NULLTHEN/* CLONE details from similar version OR from nCloneFromPvId */IF ( NOT nCloneFromPvId IS NULL) THENcloneFrom_pv_id := nCloneFromPvId;ELSEcloneFrom_pv_id := clone_package_versions_rec.pv_id;END IF;-- Clone Package Version Details --INSERT INTO PACKAGE_VERSIONS ( pv_id, pkg_id, pkg_version, dlocked, created_stamp, creator_id, modified_stamp, modifier_id, V_MM, V_NMM, V_EXT,src_path, pv_description, PV_OVERVIEW, LAST_PV_ID, owner_id, BUILD_TYPE, IS_BUILD_ENV_REQUIRED, bs_id, is_autobuildable, is_deployable, ripple_field )SELECT parPv_id AS pv_id,parPkg_id AS pkg_id,SSpkg_version AS pkg_version,'N' AS dlocked,Ora_Sysdate AS created_stamp,NNuser_id AS creator_id,Ora_Sysdatetime AS modified_stamp,NNuser_id AS modifier_id,SSV_MM AS V_MM,SSV_NMM AS V_NMM,SSV_EXT AS V_EXT,pv.src_path,pv.pv_description,pv.PV_OVERVIEW,cloneFrom_pv_id AS LAST_PV_ID,pv.owner_id,pv.BUILD_TYPE,pv.IS_BUILD_ENV_REQUIRED,pv.BS_ID,pv.is_autobuildable,pv.IS_DEPLOYABLE,pv.ripple_fieldFROM PACKAGE_VERSIONS pvWHERE pv.pv_id = cloneFrom_pv_id;Basic_Clone ( cloneFrom_pv_id, parPv_id, NULL, NNuser_id, parPkg_id, 0 );ELSE/* BRAND NEW version + ext */INSERT INTO PACKAGE_VERSIONS ( pv_id, pkg_id, pkg_version, dlocked, created_stamp, creator_id, modified_stamp, modifier_id, V_MM, V_NMM, V_EXT, owner_id, LAST_PV_ID, BUILD_TYPE, ripple_field )VALUES (parPv_id,parPkg_id,SSpkg_version,'N',Ora_Sysdate,NNuser_id,Ora_Sysdatetime,NNuser_id,SSV_MM,SSV_NMM,SSV_EXT,NNuser_id,parPv_id,'M','b');END IF;CLOSE clone_package_versions_cur;retPV_ID := parPv_id;ELSEretPV_ID := package_versions_rec.pv_id;END IF;CLOSE package_versions_cur;END Seed_Package_Names_Versions;/