Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
15 rsolanki 1
/* Release Diff */
2
SELECT qry.*
3
  FROM (
4
 
5
		/* Removed Patches*/
6
		SELECT 'R' AS CHANGE_TYPE,
7
			   oldbom.PKG_ID,
8
			   oldbom.PV_ID AS PV_ID_A,
9
		       oldbom.PKG_NAME AS PKG_NAME_A,
10
			   oldbom.PKG_VERSION AS PKG_VERSION_A,
11
			   oldbom.NODE_NAME AS NODE_NAME_A,
12
			   oldbom.OS_NAME AS OS_NAME_A,
13
			   NULL AS PV_ID_B,
14
			   NULL AS PKG_NAME_B,
15
			   NULL AS PKG_VERSION_B,
16
			   NULL AS NODE_NAME_B,
17
			   NULL AS OS_NAME_B
18
		  FROM (
19
		  		SELECT osc.PROD_ID,
20
					   nn.NODE_NAME ||'_'|| os.OS_NAME AS PK,
21
					   pv.PKG_VERSION, pv.PV_ID, pkg.PKG_NAME, pv.PKG_ID, nn.NODE_NAME AS NODE_NAME_B	
22
				  FROM OS_CONTENTS osc,
23
				  	   OPERATING_SYSTEMS os,
24
					   NETWORK_NODES nn,
25
					   BOM_CONTENTS bc,
26
					   PACKAGE_VERSIONS pv,
27
					   PACKAGES pkg
28
				 WHERE osc.OS_ID = os.OS_ID
29
				   AND os.NODE_ID = nn.NODE_ID
30
				   AND bc.NODE_ID = nn.NODE_ID
31
				   AND osc.PROD_ID = pv.PV_ID
32
				   AND NOT pv.IS_PATCH IS NULL
33
				   AND bc.BOM_ID = :SBOM_B
34
				   AND pkg.PKG_ID = pv.PKG_ID				   	
35
		  	   ) newbom,
36
			   (
37
			   	SELECT osc.PROD_ID,
38
					   nn.NODE_NAME ||'_'|| os.OS_NAME AS PK,
39
					   pv.PKG_VERSION, pv.PV_ID, pkg.PKG_NAME, pv.PKG_ID, nn.NODE_NAME, os.OS_NAME					   
40
				  FROM OS_CONTENTS osc,
41
				  	   OPERATING_SYSTEMS os,
42
					   NETWORK_NODES nn,
43
					   BOM_CONTENTS bc,
44
					   PACKAGE_VERSIONS pv,
45
					   PACKAGES pkg
46
				 WHERE osc.OS_ID = os.OS_ID
47
				   AND os.NODE_ID = nn.NODE_ID
48
				   AND bc.NODE_ID = nn.NODE_ID
49
				   AND osc.PROD_ID = pv.PV_ID
50
				   AND NOT pv.IS_PATCH IS NULL
51
				   AND bc.BOM_ID = :SBOM_A	
52
				   AND pkg.PKG_ID = pv.PKG_ID
53
 
54
			   ) oldbom
55
		 WHERE newbom.PK (+) = oldbom.PK  
56
		   AND newbom.PROD_ID (+) = oldbom.PROD_ID  
57
		   AND newbom.PK IS NULL  
58
		   AND :REMOVED IS NULL		   
59
 
60
 
61
		UNION
62
 
63
		/* Removed Products*/
64
		SELECT 'R' AS CHANGE_TYPE,
65
			   oldbom.PKG_ID,
66
			   oldbom.PV_ID AS PV_ID_A,
67
		       oldbom.PKG_NAME AS PKG_NAME_A,
68
			   oldbom.PKG_VERSION AS PKG_VERSION_A,
69
			   oldbom.NODE_NAME_A,
70
			   oldbom.OS_NAME_A,
71
			   NULL AS PV_ID_B,
72
			   NULL AS PKG_NAME_B,
73
			   NULL AS PKG_VERSION_B,
74
			   NULL AS NODE_NAME_B,
75
			   NULL AS OS_NAME_B
76
			 FROM (			   
77
		  		SELECT osc.PROD_ID,
78
					   nn.NODE_NAME ||'_'|| os.OS_NAME AS PK,
79
					   pv.PKG_ID, pv.PKG_VERSION, pkg.PKG_NAME, pv.PV_ID, nn.NODE_NAME AS NODE_NAME_B,
80
					   NVL( pv.V_EXT, '|LINK_A_NULL|' ) AS V_EXT
81
				  FROM OS_CONTENTS osc,
82
				  	   OPERATING_SYSTEMS os,
83
					   NETWORK_NODES nn,
84
					   BOM_CONTENTS bc,
85
					   PACKAGE_VERSIONS pv,
86
					   PACKAGES pkg
87
				 WHERE osc.OS_ID = os.OS_ID
88
				   AND os.NODE_ID = nn.NODE_ID
89
				   AND bc.NODE_ID = nn.NODE_ID
90
				   AND osc.PROD_ID = pv.PV_ID
91
				   AND pv.IS_PATCH IS NULL
92
				   AND bc.BOM_ID = :SBOM_B	
93
				   AND pkg.PKG_ID = pv.PKG_ID
94
		  	   ) newbom,
95
			   (
96
			   	SELECT osc.PROD_ID,
97
					   nn.NODE_NAME ||'_'|| os.OS_NAME AS PK,
98
					   pv.PKG_ID, pv.PKG_VERSION, pkg.PKG_NAME, pv.PV_ID, nn.NODE_NAME AS NODE_NAME_A, os.OS_NAME AS OS_NAME_A,
99
					   NVL( pv.V_EXT, '|LINK_A_NULL|' ) AS V_EXT
100
				  FROM OS_CONTENTS osc,
101
				  	   OPERATING_SYSTEMS os,
102
					   NETWORK_NODES nn,
103
					   BOM_CONTENTS bc,
104
					   PACKAGE_VERSIONS pv,
105
					   PACKAGES pkg
106
				 WHERE osc.OS_ID = os.OS_ID
107
				   AND os.NODE_ID = nn.NODE_ID
108
				   AND bc.NODE_ID = nn.NODE_ID
109
				   AND osc.PROD_ID = pv.PV_ID
110
				   AND pv.IS_PATCH IS NULL
111
				   AND bc.BOM_ID = :SBOM_A
112
				   AND pkg.PKG_ID = pv.PKG_ID
113
			   ) oldbom
114
		 WHERE newbom.PK (+) = oldbom.PK  
115
		   --AND newbom.PROD_ID (+) = oldbom.PROD_ID
116
		   AND newbom.PKG_ID (+) = oldbom.PKG_ID
117
		   AND newbom.V_EXT (+) = oldbom.V_EXT   
118
		   AND newbom.PK IS NULL
119
		   AND :REMOVED IS NULL		   		
120
 
121
		UNION
122
 
123
 
124
		/* Added Patches */   
125
		SELECT 'A' AS CHANGE_TYPE,
126
			   newbom.PKG_ID,
127
			   NULL AS PV_ID_A,
128
			   NULL AS PKG_NAME_A,
129
			   NULL AS PKG_VERSION_A,
130
			   NULL AS NODE_NAME_A,
131
			   NULL AS OS_NAME_A,
132
			   newbom.PV_ID AS PV_ID_B,
133
			   newbom.PKG_NAME AS PKG_NAME_B,
134
			   newbom.PKG_VERSION AS PKG_VERSION_B,
135
			   newbom.NODE_NAME_B,
136
			   newbom.OS_NAME_B
137
		  FROM (
138
		  		SELECT osc.PROD_ID,
139
					   nn.NODE_NAME ||'_'|| os.OS_NAME AS PK,
140
					   pv.PKG_VERSION, pv.PV_ID, pkg.PKG_NAME, pv.PKG_ID, nn.NODE_NAME AS NODE_NAME_B, os.OS_NAME AS OS_NAME_B
141
				  FROM OS_CONTENTS osc,
142
				  	   OPERATING_SYSTEMS os,
143
					   NETWORK_NODES nn,
144
					   BOM_CONTENTS bc,
145
					   PACKAGE_VERSIONS pv,
146
					   PACKAGES pkg
147
				 WHERE osc.OS_ID = os.OS_ID
148
				   AND os.NODE_ID = nn.NODE_ID
149
				   AND bc.NODE_ID = nn.NODE_ID
150
				   AND osc.PROD_ID = pv.PV_ID
151
				   AND NOT pv.IS_PATCH IS NULL
152
				   AND bc.BOM_ID = :SBOM_B
153
				   AND pkg.PKG_ID = pv.PKG_ID
154
		  	   ) newbom,
155
			   (
156
			   	SELECT osc.PROD_ID,
157
					   nn.NODE_NAME ||'_'|| os.OS_NAME AS PK
158
				  FROM OS_CONTENTS osc,
159
				  	   OPERATING_SYSTEMS os,
160
					   NETWORK_NODES nn,
161
					   BOM_CONTENTS bc,
162
					   PACKAGE_VERSIONS pv
163
				 WHERE osc.OS_ID = os.OS_ID
164
				   AND os.NODE_ID = nn.NODE_ID
165
				   AND bc.NODE_ID = nn.NODE_ID
166
				   AND osc.PROD_ID = pv.PV_ID
167
				   AND NOT pv.IS_PATCH IS NULL
168
				   AND bc.BOM_ID = :SBOM_A
169
			   ) oldbom
170
		 WHERE newbom.PK = oldbom.PK (+) 
171
		   AND newbom.PROD_ID = oldbom.PROD_ID (+)
172
		   AND oldbom.PK IS NULL	   
173
		   AND :ADDED IS NULL
174
 
175
		UNION
176
 
177
		/* Added Products */   
178
		SELECT 'A' AS CHANGE_TYPE,
179
			   newbom.PKG_ID,
180
			   NULL AS PV_ID_A,
181
			   NULL AS PKG_NAME_A,
182
			   NULL AS PKG_VERSION_A,
183
			   NULL AS NODE_NAME_A,
184
			   NULL AS OS_NAME_A,
185
			   newbom.PV_ID AS PV_ID_B,
186
			   newbom.PKG_NAME AS PKG_NAME_B,
187
			   newbom.PKG_VERSION AS PKG_VERSION_B,
188
			   newbom.NODE_NAME_B,
189
			   newbom.OS_NAME_B
190
		  FROM (
191
		  		SELECT osc.PROD_ID,
192
					   nn.NODE_NAME ||'_'|| os.OS_NAME AS PK,
193
					   pv.PKG_ID, pv.PKG_VERSION, pkg.PKG_NAME, pv.PV_ID, nn.NODE_NAME AS NODE_NAME_B, os.OS_NAME AS OS_NAME_B,
194
					   NVL( pv.V_EXT, '|LINK_A_NULL|' ) AS V_EXT
195
				  FROM OS_CONTENTS osc,
196
				  	   OPERATING_SYSTEMS os,
197
					   NETWORK_NODES nn,
198
					   BOM_CONTENTS bc,
199
					   PACKAGE_VERSIONS pv,
200
					   PACKAGES pkg
201
				 WHERE osc.OS_ID = os.OS_ID
202
				   AND os.NODE_ID = nn.NODE_ID
203
				   AND bc.NODE_ID = nn.NODE_ID
204
				   AND osc.PROD_ID = pv.PV_ID
205
				   AND pv.IS_PATCH IS NULL
206
				   AND bc.BOM_ID = :SBOM_B
207
				   AND pkg.PKG_ID = pv.PKG_ID	
208
		  	   ) newbom,
209
			   (
210
			   	SELECT osc.PROD_ID,
211
					   nn.NODE_NAME ||'_'|| os.OS_NAME AS PK,
212
					   pv.PKG_ID,
213
					   NVL( pv.V_EXT, '|LINK_A_NULL|' ) AS V_EXT
214
				  FROM OS_CONTENTS osc,
215
				  	   OPERATING_SYSTEMS os,
216
					   NETWORK_NODES nn,
217
					   BOM_CONTENTS bc,
218
					   PACKAGE_VERSIONS pv
219
				 WHERE osc.OS_ID = os.OS_ID
220
				   AND os.NODE_ID = nn.NODE_ID
221
				   AND bc.NODE_ID = nn.NODE_ID
222
				   AND osc.PROD_ID = pv.PV_ID
223
				   AND pv.IS_PATCH IS NULL
224
				   AND bc.BOM_ID = :SBOM_A
225
			   ) oldbom
226
		 WHERE newbom.PK = oldbom.PK (+) 
227
		   --AND newbom.PROD_ID = oldbom.PROD_ID (+)
228
		   AND newbom.PKG_ID  = oldbom.PKG_ID (+)
229
		   AND newbom.V_EXT  = oldbom.V_EXT (+) 
230
		   AND oldbom.PROD_ID IS NULL   
231
		   AND :ADDED IS NULL		    
232
 
233
 
234
		UNION
235
 
236
		/* UPDATED Packages */   
237
		SELECT ( 
238
				CASE WHEN ra.PV_ID < rb.PV_ID THEN
239
					'UW'
240
				ELSE
241
					'U'
242
				END
243
				) AS CHANGE_TYPE,
244
			   ra.PKG_ID,
245
			   ra.PV_ID AS PV_ID_A,
246
		       ra.PKG_NAME AS PKG_NAME_A,
247
			   ra.PKG_VERSION AS PKG_VERSION_A,
248
			   ra.NODE_NAME_A,
249
			   ra.OS_NAME_A,
250
			   rb.PV_ID AS PV_ID_B,
251
			   rb.PKG_NAME AS PKG_NAME_B,
252
			   rb.PKG_VERSION AS PKG_VERSION_B,
253
			   rb.NODE_NAME_B,
254
			   rb.OS_NAME_B
255
		  FROM (
256
		   	   SELECT osc.PROD_ID, pv.PV_ID, pv.V_EXT, pv.PKG_VERSION, pkg.PKG_NAME, pv.PKG_ID, nn.NODE_NAME AS NODE_NAME_A,
257
			   os.OS_NAME AS OS_NAME_A
258
			   FROM OS_CONTENTS osc,
259
			  	    OPERATING_SYSTEMS os,
260
					NETWORK_NODES nn,
261
					BOM_CONTENTS bc,
262
					PACKAGE_VERSIONS pv,
263
					PACKAGES pkg
264
			  WHERE osc.OS_ID = os.OS_ID
265
				AND os.NODE_ID = nn.NODE_ID
266
				AND bc.NODE_ID = nn.NODE_ID
267
				AND osc.PROD_ID = pv.PV_ID
268
				AND pv.IS_PATCH IS NULL
269
				AND bc.BOM_ID = :SBOM_A
270
				AND pkg.PKG_ID = pv.PKG_ID
271
		       ) ra,
272
			   (
273
			   SELECT osc.PROD_ID, pv.PV_ID, pv.V_EXT, pv.PKG_VERSION, pkg.PKG_NAME, pv.PKG_ID, nn.NODE_NAME AS NODE_NAME_B,
274
			   os.OS_NAME AS OS_NAME_B
275
			   FROM OS_CONTENTS osc,
276
			  	    OPERATING_SYSTEMS os,
277
					NETWORK_NODES nn,
278
					BOM_CONTENTS bc,
279
					PACKAGE_VERSIONS pv,
280
					PACKAGES pkg
281
			  WHERE osc.OS_ID = os.OS_ID
282
				AND os.NODE_ID = nn.NODE_ID
283
				AND bc.NODE_ID = nn.NODE_ID
284
				AND osc.PROD_ID = pv.PV_ID
285
				AND pv.IS_PATCH IS NULL
286
				AND bc.BOM_ID = :SBOM_B	
287
				AND pv.PKG_ID = pkg.PKG_ID
288
				AND osc.PROD_ID NOT IN (
289
				SELECT osc.PROD_ID
290
			   FROM OS_CONTENTS osc,
291
			  	    OPERATING_SYSTEMS os,
292
					NETWORK_NODES nn,
293
					BOM_CONTENTS bc,
294
					PACKAGE_VERSIONS pv
295
			  WHERE osc.OS_ID = os.OS_ID
296
				AND os.NODE_ID = nn.NODE_ID
297
				AND bc.NODE_ID = nn.NODE_ID
298
				AND osc.PROD_ID = pv.PV_ID
299
				AND pv.IS_PATCH IS NULL
300
				AND bc.BOM_ID = :SBOM_A
301
				)
302
			   ) rb
303
		 WHERE ra.PKG_ID = rb.PKG_ID
304
		   AND NVL( ra.V_EXT, '|LINK_A_NULL|') = NVL( rb.V_EXT, '|LINK_A_NULL|')  
305
		   AND ra.PV_ID != rb.PV_ID 
306
		   AND :UPDATED IS NULL 
307
		   AND ra.NODE_NAME_A = rb.NODE_NAME_B
308
		   AND ra.OS_NAME_A = rb.OS_NAME_B
309
  		) qry
310
 ORDER BY UPPER(qry.PKG_NAME_A)