DBA Data[Home] [Help]

PACKAGE BODY: APPS.FND_COL_PRIV_ATTRIBUTES_PKG

Source


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