Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
221 vnguyen 1
CREATE PROCEDURE "RELEASE_MANAGER"."UPDATE_RUNTIME_DEPENDENCY" ( NNpv_id IN RUNTIME_DEPENDENCIES.pv_id%TYPE,
2
				   	  		  						    NNrtd_id IN RUNTIME_DEPENDENCIES.rtd_id%TYPE,
3
				   	  		  						    SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
4
													    SSrtd_url IN RUNTIME_DEPENDENCIES.rtd_url%TYPE,
5
													    SSrtd_comments IN RUNTIME_DEPENDENCIES.rtd_comments%TYPE,
6
													    NNuser_id IN NUMBER ) IS
7
/* ---------------------------------------------------------------------------
8
    Version: 3.0.1
9
   --------------------------------------------------------------------------- */
10
 
11
    retRTD_ID	NUMBER;
12
	CURSOR rtd_cur IS
13
	    SELECT pv.pkg_version, pkg.pkg_name
14
		  FROM runtime_dependencies rtd,
15
		       package_versions pv,
16
			   packages pkg
17
		 WHERE rtd.rtd_id = pv.pv_id
18
		   AND pv.pkg_id = pkg.pkg_id
19
		   AND rtd.pv_id = NNpv_id
20
		   AND rtd.rtd_id = NNrtd_id;
21
	   rtd_rec rtd_cur%ROWTYPE;
22
 
23
	CURSOR old_rtd_cur IS
24
	    SELECT pv.pv_id
25
		  FROM package_versions pv
26
		 WHERE pv.pkg_id IN ( SELECT rtdpv.pkg_id
27
		 	   			 	    FROM package_versions rtdpv
28
							   WHERE rtdpv.pv_id = NNrtd_id )
29
		   AND pv.pkg_version = SSrtd_version;
30
	old_rtd_rec old_rtd_cur%ROWTYPE;
31
 
32
 
33
BEGIN
34
 
35
    -- Get current runtime dependency details
36
	OPEN rtd_cur;
37
    FETCH rtd_cur INTO rtd_rec;
38
 
39
 
40
 
41
 
42
	IF rtd_rec.pkg_version != SSrtd_version THEN
43
           -- Version has changed, hence create new runtime dependency --
44
	    /* NOTE: You must create new version as updating just a version will affect
45
		        all packages using this runtime dependency and user does not expect that.
46
		        It is safer to create new version */
47
		OPEN old_rtd_cur;
48
		FETCH old_rtd_cur INTO old_rtd_rec;
49
 
50
 
51
		IF old_rtd_cur%NOTFOUND
52
		THEN
53
			-- Version not found, hence Create New version --
54
    		Seed_Package_Names_Versions ( rtd_rec.pkg_name, SSrtd_version, NNuser_id, retRTD_ID );
55
 
56
			-- Update runtime dependency table --
57
			UPDATE runtime_dependencies SET
58
				   rtd_id = retRTD_ID,
59
				   rtd_url = SSrtd_url,
60
				   rtd_comments = SSrtd_comments
61
			 WHERE pv_id = NNpv_id
62
			   AND rtd_id = NNrtd_id;
63
 
64
		ELSE
65
			-- Update runtime dependency table --
66
			UPDATE runtime_dependencies SET
67
				   rtd_id = old_rtd_rec.pv_id,
68
				   rtd_url = SSrtd_url,
69
				   rtd_comments = SSrtd_comments
70
			 WHERE pv_id = NNpv_id
71
			   AND rtd_id = NNrtd_id;
72
 
73
		END IF;
74
 
75
 
76
		CLOSE old_rtd_cur;
77
 
78
	ELSE
79
		--  Version has not changed, hence update everithing except	version --
80
		UPDATE runtime_dependencies SET
81
			   rtd_url = SSrtd_url,
82
			   rtd_comments = SSrtd_comments
83
		 WHERE pv_id = NNpv_id
84
		   AND rtd_id = NNrtd_id;
85
 
86
 
87
 
88
	END IF;
89
 
90
 
91
	CLOSE rtd_cur;
92
 
93
END Update_Runtime_Dependency;
94
/