DBA Data[Home] [Help]

PACKAGE BODY: APPS.SO_RESULTS_PKG

Source


1 package body SO_RESULTS_PKG as
2 /* $Header: OEXRSLTB.pls 115.4 99/08/13 11:23:30 porting shi $ */
3 procedure INSERT_ROW (
4   X_ROWID in out VARCHAR2,
5   X_RESULT_ID in NUMBER,
6   X_ATTRIBUTE10 in VARCHAR2,
7   X_ATTRIBUTE11 in VARCHAR2,
8   X_ATTRIBUTE12 in VARCHAR2,
9   X_ATTRIBUTE13 in VARCHAR2,
10   X_ATTRIBUTE14 in VARCHAR2,
11   X_ATTRIBUTE15 in VARCHAR2,
12   X_START_DATE_ACTIVE in DATE,
13   X_END_DATE_ACTIVE in DATE,
14   X_CONTEXT in VARCHAR2,
15   X_ATTRIBUTE1 in VARCHAR2,
16   X_ATTRIBUTE2 in VARCHAR2,
17   X_ATTRIBUTE3 in VARCHAR2,
18   X_ATTRIBUTE4 in VARCHAR2,
19   X_ATTRIBUTE5 in VARCHAR2,
20   X_ATTRIBUTE6 in VARCHAR2,
21   X_ATTRIBUTE7 in VARCHAR2,
22   X_ATTRIBUTE8 in VARCHAR2,
23   X_ATTRIBUTE9 in VARCHAR2,
24   X_NAME in VARCHAR2,
25   X_DESCRIPTION in VARCHAR2,
26   X_CREATION_DATE in DATE,
27   X_CREATED_BY in NUMBER,
28   X_LAST_UPDATE_DATE in DATE,
29   X_LAST_UPDATED_BY in NUMBER,
30   X_LAST_UPDATE_LOGIN in NUMBER
31 ) is
32   cursor C is select ROWID from SO_RESULTS_B
33     where RESULT_ID = X_RESULT_ID
34     ;
35 begin
36   insert into SO_RESULTS_B (
37     ATTRIBUTE10,
38     ATTRIBUTE11,
39     ATTRIBUTE12,
40     ATTRIBUTE13,
41     ATTRIBUTE14,
42     ATTRIBUTE15,
43     RESULT_ID,
44     START_DATE_ACTIVE,
45     END_DATE_ACTIVE,
46     CONTEXT,
47     ATTRIBUTE1,
48     ATTRIBUTE2,
49     ATTRIBUTE3,
50     ATTRIBUTE4,
51     ATTRIBUTE5,
52     ATTRIBUTE6,
53     ATTRIBUTE7,
54     ATTRIBUTE8,
55     ATTRIBUTE9,
56     CREATION_DATE,
57     CREATED_BY,
58     LAST_UPDATE_DATE,
59     LAST_UPDATED_BY,
60     LAST_UPDATE_LOGIN
61   ) values (
62     X_ATTRIBUTE10,
63     X_ATTRIBUTE11,
64     X_ATTRIBUTE12,
65     X_ATTRIBUTE13,
66     X_ATTRIBUTE14,
67     X_ATTRIBUTE15,
68     X_RESULT_ID,
69     X_START_DATE_ACTIVE,
70     X_END_DATE_ACTIVE,
71     X_CONTEXT,
72     X_ATTRIBUTE1,
73     X_ATTRIBUTE2,
74     X_ATTRIBUTE3,
75     X_ATTRIBUTE4,
76     X_ATTRIBUTE5,
77     X_ATTRIBUTE6,
78     X_ATTRIBUTE7,
79     X_ATTRIBUTE8,
80     X_ATTRIBUTE9,
81     X_CREATION_DATE,
82     X_CREATED_BY,
83     X_LAST_UPDATE_DATE,
84     X_LAST_UPDATED_BY,
85     X_LAST_UPDATE_LOGIN
86   );
87 
88   insert into SO_RESULTS_TL (
89     RESULT_ID,
90     NAME,
91     DESCRIPTION,
92     CREATION_DATE,
93     CREATED_BY,
94     LAST_UPDATE_DATE,
95     LAST_UPDATED_BY,
96     LAST_UPDATE_LOGIN,
97     LANGUAGE,
98     SOURCE_LANG
99   ) select
100     X_RESULT_ID,
101     X_NAME,
102     X_DESCRIPTION,
103     X_CREATION_DATE,
104     X_CREATED_BY,
105     X_LAST_UPDATE_DATE,
106     X_LAST_UPDATED_BY,
107     X_LAST_UPDATE_LOGIN,
108     L.LANGUAGE_CODE,
109     userenv('LANG')
110   from FND_LANGUAGES L
111   where L.INSTALLED_FLAG in ('I', 'B')
112   and not exists
113     (select NULL
114     from SO_RESULTS_TL T
115     where T.RESULT_ID = X_RESULT_ID
116     and T.LANGUAGE = L.LANGUAGE_CODE);
117 
118   open c;
119   fetch c into X_ROWID;
120   if (c%notfound) then
121     close c;
122     raise no_data_found;
123   end if;
124   close c;
125 
126 end INSERT_ROW;
127 
128 procedure LOCK_ROW (
129   X_RESULT_ID in NUMBER,
130   X_ATTRIBUTE10 in VARCHAR2,
131   X_ATTRIBUTE11 in VARCHAR2,
132   X_ATTRIBUTE12 in VARCHAR2,
133   X_ATTRIBUTE13 in VARCHAR2,
134   X_ATTRIBUTE14 in VARCHAR2,
135   X_ATTRIBUTE15 in VARCHAR2,
136   X_START_DATE_ACTIVE in DATE,
137   X_END_DATE_ACTIVE in DATE,
138   X_CONTEXT in VARCHAR2,
139   X_ATTRIBUTE1 in VARCHAR2,
140   X_ATTRIBUTE2 in VARCHAR2,
141   X_ATTRIBUTE3 in VARCHAR2,
142   X_ATTRIBUTE4 in VARCHAR2,
143   X_ATTRIBUTE5 in VARCHAR2,
144   X_ATTRIBUTE6 in VARCHAR2,
145   X_ATTRIBUTE7 in VARCHAR2,
146   X_ATTRIBUTE8 in VARCHAR2,
147   X_ATTRIBUTE9 in VARCHAR2,
148   X_NAME in VARCHAR2,
149   X_DESCRIPTION in VARCHAR2
150 ) is
151   cursor c is select
152       ATTRIBUTE10,
153       ATTRIBUTE11,
154       ATTRIBUTE12,
155       ATTRIBUTE13,
156       ATTRIBUTE14,
157       ATTRIBUTE15,
158       START_DATE_ACTIVE,
159       END_DATE_ACTIVE,
160       CONTEXT,
161       ATTRIBUTE1,
162       ATTRIBUTE2,
163       ATTRIBUTE3,
164       ATTRIBUTE4,
165       ATTRIBUTE5,
166       ATTRIBUTE6,
167       ATTRIBUTE7,
168       ATTRIBUTE8,
169       ATTRIBUTE9
170     from SO_RESULTS_B
171     where RESULT_ID = X_RESULT_ID
172     for update of RESULT_ID nowait;
173   recinfo c%rowtype;
174 
175   cursor c1 is select
176       NAME,
177       DESCRIPTION,
178       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
179     from SO_RESULTS_TL
180     where RESULT_ID = X_RESULT_ID
181     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
182     for update of RESULT_ID nowait;
183 begin
184   open c;
185   fetch c into recinfo;
186   if (c%notfound) then
187     close c;
188     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
189     app_exception.raise_exception;
190   end if;
191   close c;
192   if (    ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
193            OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
194       AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
195            OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
196       AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
197            OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
198       AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
199            OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
200       AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
201            OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
202       AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
203            OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
204       AND ((recinfo.START_DATE_ACTIVE = X_START_DATE_ACTIVE)
205            OR ((recinfo.START_DATE_ACTIVE is null) AND (X_START_DATE_ACTIVE is null)))
206       AND ((recinfo.END_DATE_ACTIVE = X_END_DATE_ACTIVE)
207            OR ((recinfo.END_DATE_ACTIVE is null) AND (X_END_DATE_ACTIVE is null)))
208       AND ((recinfo.CONTEXT = X_CONTEXT)
209            OR ((recinfo.CONTEXT is null) AND (X_CONTEXT is null)))
210       AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
211            OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
212       AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
213            OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
214       AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
215            OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
216       AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
217            OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
218       AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
219            OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
220       AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
221            OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
222       AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
223            OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
224       AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
225            OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
226       AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
227            OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
228   ) then
229     null;
230   else
231     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
232     app_exception.raise_exception;
233   end if;
234 
235   for tlinfo in c1 loop
236     if (tlinfo.BASELANG = 'Y') then
237       if (    (tlinfo.NAME = X_NAME)
238           AND (tlinfo.DESCRIPTION = X_DESCRIPTION)
239       ) then
240         null;
241       else
242         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
243         app_exception.raise_exception;
244       end if;
245     end if;
246   end loop;
247   return;
248 end LOCK_ROW;
249 
250 procedure UPDATE_ROW (
251   X_RESULT_ID in NUMBER,
252   X_ATTRIBUTE10 in VARCHAR2,
253   X_ATTRIBUTE11 in VARCHAR2,
254   X_ATTRIBUTE12 in VARCHAR2,
255   X_ATTRIBUTE13 in VARCHAR2,
256   X_ATTRIBUTE14 in VARCHAR2,
257   X_ATTRIBUTE15 in VARCHAR2,
258   X_START_DATE_ACTIVE in DATE,
259   X_END_DATE_ACTIVE in DATE,
260   X_CONTEXT in VARCHAR2,
261   X_ATTRIBUTE1 in VARCHAR2,
262   X_ATTRIBUTE2 in VARCHAR2,
263   X_ATTRIBUTE3 in VARCHAR2,
264   X_ATTRIBUTE4 in VARCHAR2,
265   X_ATTRIBUTE5 in VARCHAR2,
266   X_ATTRIBUTE6 in VARCHAR2,
267   X_ATTRIBUTE7 in VARCHAR2,
268   X_ATTRIBUTE8 in VARCHAR2,
269   X_ATTRIBUTE9 in VARCHAR2,
270   X_NAME in VARCHAR2,
271   X_DESCRIPTION in VARCHAR2,
272   X_LAST_UPDATE_DATE in DATE,
273   X_LAST_UPDATED_BY in NUMBER,
274   X_LAST_UPDATE_LOGIN in NUMBER
275 ) is
276 begin
277   update SO_RESULTS_B set
278     ATTRIBUTE10 = X_ATTRIBUTE10,
279     ATTRIBUTE11 = X_ATTRIBUTE11,
280     ATTRIBUTE12 = X_ATTRIBUTE12,
281     ATTRIBUTE13 = X_ATTRIBUTE13,
282     ATTRIBUTE14 = X_ATTRIBUTE14,
283     ATTRIBUTE15 = X_ATTRIBUTE15,
284     START_DATE_ACTIVE = X_START_DATE_ACTIVE,
285     END_DATE_ACTIVE = X_END_DATE_ACTIVE,
286     CONTEXT = X_CONTEXT,
287     ATTRIBUTE1 = X_ATTRIBUTE1,
288     ATTRIBUTE2 = X_ATTRIBUTE2,
289     ATTRIBUTE3 = X_ATTRIBUTE3,
290     ATTRIBUTE4 = X_ATTRIBUTE4,
291     ATTRIBUTE5 = X_ATTRIBUTE5,
292     ATTRIBUTE6 = X_ATTRIBUTE6,
293     ATTRIBUTE7 = X_ATTRIBUTE7,
294     ATTRIBUTE8 = X_ATTRIBUTE8,
295     ATTRIBUTE9 = X_ATTRIBUTE9,
296     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
297     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
298     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
299   where RESULT_ID = X_RESULT_ID;
300 
301   if (sql%notfound) then
302     raise no_data_found;
303   end if;
304 
305   update SO_RESULTS_TL set
306     NAME = X_NAME,
307     DESCRIPTION = X_DESCRIPTION,
308     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
309     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
310     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
311     SOURCE_LANG = userenv('LANG')
312   where RESULT_ID = X_RESULT_ID
313   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
314 
315   if (sql%notfound) then
316     raise no_data_found;
317   end if;
318 end UPDATE_ROW;
319 
320 procedure TRANSLATE_ROW (
321 X_NAME		in	VARCHAR2,
322 X_OWNER		in	VARCHAR2,
323 X_DESCRIPTION	in	VARCHAR2
324 ) is
325 begin
326   update so_results_tl set
327     description              = X_DESCRIPTION,
328     source_lang              = userenv('LANG'),
329     last_update_date         = sysdate,
330     last_updated_by          = decode(X_OWNER, 'SEED', 1, 0),
331     last_update_login        = 0
332   where name = X_NAME
333   and userenv('LANG') in (language, source_lang);
334 
335 end TRANSLATE_ROW;
336 
337 procedure LOAD_ROW (
338 X_NAME				in	VARCHAR2,
339 X_RESULT_ID			in	VARCHAR2,
340 X_OWNER				in	VARCHAR2,
341 X_START_DATE_ACTIVE		in	VARCHAR2,
342 X_END_DATE_ACTIVE		in	VARCHAR2,
343 X_CONTEXT			in	VARCHAR2,
344 X_ATTRIBUTE1			in	VARCHAR2,
345 X_ATTRIBUTE2			in	VARCHAR2,
346 X_ATTRIBUTE3			in	VARCHAR2,
347 X_ATTRIBUTE4			in	VARCHAR2,
348 X_ATTRIBUTE5			in	VARCHAR2,
349 X_ATTRIBUTE6			in	VARCHAR2,
350 X_ATTRIBUTE7			in	VARCHAR2,
351 X_ATTRIBUTE8			in	VARCHAR2,
352 X_ATTRIBUTE9			in	VARCHAR2,
353 X_ATTRIBUTE10			in	VARCHAR2,
354 X_ATTRIBUTE11			in	VARCHAR2,
355 X_ATTRIBUTE12			in	VARCHAR2,
356 X_ATTRIBUTE13			in	VARCHAR2,
357 X_ATTRIBUTE14			in	VARCHAR2,
358 X_ATTRIBUTE15			in	VARCHAR2,
359 X_DESCRIPTION			in	VARCHAR2
360 ) is
361 BEGIN
362   DECLARE
363      user_id    number := 0;
364      result_id	number := 0;
365      row_id 	varchar2(64);
366   BEGIN
367      if (X_OWNER = 'SEED') then
368        user_id := 1;
369      end if;
370 
371   so_results_pkg.UPDATE_ROW (
372   X_RESULT_ID		=>	X_RESULT_ID,
373   X_ATTRIBUTE10		=>	X_ATTRIBUTE10,
374   X_ATTRIBUTE11		=>	X_ATTRIBUTE11,
375   X_ATTRIBUTE12 	=>	X_ATTRIBUTE12,
376   X_ATTRIBUTE13 	=>	X_ATTRIBUTE13,
377   X_ATTRIBUTE14 	=>	X_ATTRIBUTE14,
378   X_ATTRIBUTE15 	=>	X_ATTRIBUTE15,
379   X_START_DATE_ACTIVE 	=>	to_date(X_START_DATE_ACTIVE, 'YYYY/MM/DD'),
380   X_END_DATE_ACTIVE 	=>	to_date(X_END_DATE_ACTIVE, 'YYYY/MM/DD'),
381   X_CONTEXT 		=>	X_CONTEXT,
382   X_ATTRIBUTE1		=>	X_ATTRIBUTE1,
383   X_ATTRIBUTE2		=>	X_ATTRIBUTE2,
384   X_ATTRIBUTE3		=>	X_ATTRIBUTE3,
385   X_ATTRIBUTE4		=>	X_ATTRIBUTE4,
386   X_ATTRIBUTE5		=>	X_ATTRIBUTE5,
387   X_ATTRIBUTE6		=>	X_ATTRIBUTE6,
388   X_ATTRIBUTE7		=>	X_ATTRIBUTE7,
389   X_ATTRIBUTE8		=>	X_ATTRIBUTE8,
390   X_ATTRIBUTE9		=>	X_ATTRIBUTE9,
391   X_NAME 		=>	x_NAME,
392   X_DESCRIPTION 	=>	X_DESCRIPTION,
393   X_LAST_UPDATE_DATE 	=>	sysdate,
394   X_LAST_UPDATED_BY 	=>	user_id,
395   X_LAST_UPDATE_LOGIN 	=>	0
396 );
397 
398   exception
399      when NO_DATA_FOUND then
400 
401        select so_results_s.nextval into result_id from dual;
402 
403   so_results_pkg.INSERT_ROW (
404   X_ROWID 		=>		row_id,
405     X_RESULT_ID		=>	X_RESULT_ID,
406   X_ATTRIBUTE10		=>	X_ATTRIBUTE10,
407   X_ATTRIBUTE11		=>	X_ATTRIBUTE11,
408   X_ATTRIBUTE12 	=>	X_ATTRIBUTE12,
409   X_ATTRIBUTE13 	=>	X_ATTRIBUTE13,
410   X_ATTRIBUTE14 	=>	X_ATTRIBUTE14,
411   X_ATTRIBUTE15 	=>	X_ATTRIBUTE15,
412   X_START_DATE_ACTIVE 	=>	to_date(X_START_DATE_ACTIVE, 'YYYY/MM/DD'),
413   X_END_DATE_ACTIVE 	=>	to_date(X_END_DATE_ACTIVE, 'YYYY/MM/DD'),
414   X_CONTEXT 		=>	X_CONTEXT,
415   X_ATTRIBUTE1		=>	X_ATTRIBUTE1,
416   X_ATTRIBUTE2		=>	X_ATTRIBUTE2,
417   X_ATTRIBUTE3		=>	X_ATTRIBUTE3,
418   X_ATTRIBUTE4		=>	X_ATTRIBUTE4,
419   X_ATTRIBUTE5		=>	X_ATTRIBUTE5,
420   X_ATTRIBUTE6		=>	X_ATTRIBUTE6,
421   X_ATTRIBUTE7		=>	X_ATTRIBUTE7,
422   X_ATTRIBUTE8		=>	X_ATTRIBUTE8,
423   X_ATTRIBUTE9		=>	X_ATTRIBUTE9,
424   X_NAME 		=>	x_NAME,
425   X_DESCRIPTION 	=>	X_DESCRIPTION,
426   X_CREATION_DATE	=>	sysdate,
427   X_CREATED_BY		=>	user_id,
428   X_LAST_UPDATE_DATE 	=>	sysdate,
429   X_LAST_UPDATED_BY 	=>	user_id,
430   X_LAST_UPDATE_LOGIN 	=>	0
431 );
432 
433 END;
434 END LOAD_ROW;
435 
436 
437 procedure DELETE_ROW (
438   X_RESULT_ID in NUMBER
439 ) is
440 begin
441   delete from SO_RESULTS_TL
442   where RESULT_ID = X_RESULT_ID;
443 
444   if (sql%notfound) then
445     raise no_data_found;
446   end if;
447 
448   delete from SO_RESULTS_B
449   where RESULT_ID = X_RESULT_ID;
450 
451   if (sql%notfound) then
452     raise no_data_found;
453   end if;
454 end DELETE_ROW;
455 
456 procedure ADD_LANGUAGE
457 is
458 begin
459   delete from SO_RESULTS_TL T
460   where not exists
461     (select NULL
462     from SO_RESULTS_B B
463     where B.RESULT_ID = T.RESULT_ID
464     );
465 
466   update SO_RESULTS_TL T set (
467       NAME,
468       DESCRIPTION
469     ) = (select
470       B.NAME,
471       B.DESCRIPTION
472     from SO_RESULTS_TL B
473     where B.RESULT_ID = T.RESULT_ID
474     and B.LANGUAGE = T.SOURCE_LANG)
475   where (
476       T.RESULT_ID,
477       T.LANGUAGE
478   ) in (select
479       SUBT.RESULT_ID,
480       SUBT.LANGUAGE
481     from SO_RESULTS_TL SUBB, SO_RESULTS_TL SUBT
482     where SUBB.RESULT_ID = SUBT.RESULT_ID
483     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
484     and (SUBB.NAME <> SUBT.NAME
485       or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
486   ));
487 
488   insert into SO_RESULTS_TL (
489     RESULT_ID,
490     NAME,
491     DESCRIPTION,
492     CREATION_DATE,
493     CREATED_BY,
494     LAST_UPDATE_DATE,
495     LAST_UPDATED_BY,
496     LAST_UPDATE_LOGIN,
497     LANGUAGE,
498     SOURCE_LANG
499   ) select
500     B.RESULT_ID,
501     B.NAME,
502     B.DESCRIPTION,
503     B.CREATION_DATE,
504     B.CREATED_BY,
505     B.LAST_UPDATE_DATE,
506     B.LAST_UPDATED_BY,
507     B.LAST_UPDATE_LOGIN,
508     L.LANGUAGE_CODE,
509     B.SOURCE_LANG
510   from SO_RESULTS_TL B, FND_LANGUAGES L
511   where L.INSTALLED_FLAG in ('I', 'B')
512   and B.LANGUAGE = userenv('LANG')
513   and not exists
514     (select NULL
515     from SO_RESULTS_TL T
516     where T.RESULT_ID = B.RESULT_ID
517     and T.LANGUAGE = L.LANGUAGE_CODE);
518 end ADD_LANGUAGE;
519 
520 end SO_RESULTS_PKG;