Subversion Repositories DevTools

Rev

Blame | Last modification | View Log | RSS feed

CREATE PROCEDURE "RELEASE_MANAGER"."REMOVE_PATCH" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,
                                                                                   nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,
                                           nUserId IN NUMBER ) IS
/* ---------------------------------------------------------------------------
    Version: 4.0
   --------------------------------------------------------------------------- */

PatchVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;

CURSOR curPatch IS
        SELECT pp.PV_ID,
                   pp.PATCH_ID,
               ROWNUM AS NEW_INSTALL_ORDER
          FROM PACKAGE_PATCHES pp
         WHERE pp.PV_ID = nPvId
        ORDER BY pp.INSTALL_ORDER;
recPatch curPatch%ROWTYPE;

BEGIN

         -- Delete Patch
     DELETE
       FROM PACKAGE_PATCHES pp
      WHERE pp.PV_ID = nPvId
        AND pp.PATCH_ID = nPatchId;


        -- Redo Install Order
    OPEN curPatch;
        FETCH curPatch INTO recPatch;

        WHILE curPatch%FOUND
        LOOP

                UPDATE PACKAGE_PATCHES pp SET
                        pp.INSTALL_ORDER = recPatch.NEW_INSTALL_ORDER
                WHERE pp.PV_ID = nPvId
                  AND pp.PATCH_ID = recPatch.PATCH_ID;

                FETCH curPatch INTO recPatch;
        END LOOP;

        CLOSE curPatch;




    /* LOG ACTION */
    SELECT pv.PKG_VERSION INTO PatchVersion
      FROM PACKAGE_VERSIONS pv
     WHERE pv.PV_ID = nPatchId;

        Log_Action ( nPvId, 'patch_remove', nUserId,
                             'Version: '|| PatchVersion );

END Remove_Patch;
/