DBA Data[Home] [Help]

PACKAGE BODY: APPS.FND_PRIVACY_ATTRIBUTES_PKG

Source


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