| 221 |
vnguyen |
1 |
CREATE PROCEDURE "RELEASE_MANAGER"."REMOVE_PATCH" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,
|
|
|
2 |
nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,
|
|
|
3 |
nUserId IN NUMBER ) IS
|
|
|
4 |
/* ---------------------------------------------------------------------------
|
|
|
5 |
Version: 4.0
|
|
|
6 |
--------------------------------------------------------------------------- */
|
|
|
7 |
|
|
|
8 |
PatchVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
|
|
|
9 |
|
|
|
10 |
CURSOR curPatch IS
|
|
|
11 |
SELECT pp.PV_ID,
|
|
|
12 |
pp.PATCH_ID,
|
|
|
13 |
ROWNUM AS NEW_INSTALL_ORDER
|
|
|
14 |
FROM PACKAGE_PATCHES pp
|
|
|
15 |
WHERE pp.PV_ID = nPvId
|
|
|
16 |
ORDER BY pp.INSTALL_ORDER;
|
|
|
17 |
recPatch curPatch%ROWTYPE;
|
|
|
18 |
|
|
|
19 |
BEGIN
|
|
|
20 |
|
|
|
21 |
-- Delete Patch
|
|
|
22 |
DELETE
|
|
|
23 |
FROM PACKAGE_PATCHES pp
|
|
|
24 |
WHERE pp.PV_ID = nPvId
|
|
|
25 |
AND pp.PATCH_ID = nPatchId;
|
|
|
26 |
|
|
|
27 |
|
|
|
28 |
-- Redo Install Order
|
|
|
29 |
OPEN curPatch;
|
|
|
30 |
FETCH curPatch INTO recPatch;
|
|
|
31 |
|
|
|
32 |
WHILE curPatch%FOUND
|
|
|
33 |
LOOP
|
|
|
34 |
|
|
|
35 |
UPDATE PACKAGE_PATCHES pp SET
|
|
|
36 |
pp.INSTALL_ORDER = recPatch.NEW_INSTALL_ORDER
|
|
|
37 |
WHERE pp.PV_ID = nPvId
|
|
|
38 |
AND pp.PATCH_ID = recPatch.PATCH_ID;
|
|
|
39 |
|
|
|
40 |
FETCH curPatch INTO recPatch;
|
|
|
41 |
END LOOP;
|
|
|
42 |
|
|
|
43 |
CLOSE curPatch;
|
|
|
44 |
|
|
|
45 |
|
|
|
46 |
|
|
|
47 |
|
|
|
48 |
/* LOG ACTION */
|
|
|
49 |
SELECT pv.PKG_VERSION INTO PatchVersion
|
|
|
50 |
FROM PACKAGE_VERSIONS pv
|
|
|
51 |
WHERE pv.PV_ID = nPatchId;
|
|
|
52 |
|
|
|
53 |
Log_Action ( nPvId, 'patch_remove', nUserId,
|
|
|
54 |
'Version: '|| PatchVersion );
|
|
|
55 |
|
|
|
56 |
END Remove_Patch;
|
|
|
57 |
/
|