[Home] [Help]
PACKAGE BODY: APPS.CS_FORUM_MESSAGES_PKG
Source
1 PACKAGE BODY CS_FORUM_MESSAGES_PKG AS
2 /* $Header: csfmagb.pls 115.7 2002/11/25 05:47:33 allau noship $ */
3 /*======================================================================+
4 | Copyright (c) 1999 Oracle Corporation |
5 | Redwood Shores, California, USA |
6 | All rights reserved. |
7 +======================================================================+
8 | FILENAME: csfmagb.pls |
9 | |
10 | PURPOSE |
11 | Table handlers for forum messages. |
12 | ARGUMENTS |
13 | |
14 | NOTES |
15 | Usage: start |
16 | HISTORY |
17 | 19-OCT-1999 A. WONG Created |
18 | 04-OCT-2002 KLOU (UNISRCH) |
19 | 1. Add new column composite_assoc_col in |
20 | cs_forum_messages_tl. |
21 | 25-NOV-2002 ALLAU
22 | Remove default value for IN parameters due to GSCC
23 | restriction
24 +======================================================================*/
25
26 procedure INSERT_ROW (
27 X_MESSAGE_ID in NUMBER,
28 X_MESSAGE_NUMBER in NUMBER,
29 X_MESSAGE_TYPE in VARCHAR2,
30 X_MESSAGE_NAME in VARCHAR2,
31 X_NAME in VARCHAR2,
32 X_POSTED_DATE in DATE,
33 X_POSTED_USER in NUMBER,
34 X_DESCRIPTION in CLOB,
35 X_ACTIVE_STATUS in VARCHAR2,
36 X_DISTRIBUTION_TYPE in VARCHAR2,
37 X_CREATION_DATE in DATE,
38 X_CREATED_BY in NUMBER,
39 X_LAST_UPDATE_DATE in DATE,
40 X_LAST_UPDATED_BY in NUMBER,
41 X_LAST_UPDATE_LOGIN in NUMBER,
42 X_ATTRIBUTE_CATEGORY in VARCHAR2,
43 X_ATTRIBUTE1 in VARCHAR2,
44 X_ATTRIBUTE2 in VARCHAR2,
45 X_ATTRIBUTE3 in VARCHAR2 ,
46 X_ATTRIBUTE4 in VARCHAR2 ,
47 X_ATTRIBUTE5 in VARCHAR2 ,
48 X_ATTRIBUTE6 in VARCHAR2 ,
49 X_ATTRIBUTE7 in VARCHAR2 ,
50 X_ATTRIBUTE8 in VARCHAR2 ,
51 X_ATTRIBUTE9 in VARCHAR2 ,
52 X_ATTRIBUTE10 in VARCHAR2 ,
53 X_ATTRIBUTE11 in VARCHAR2 ,
54 X_ATTRIBUTE12 in VARCHAR2 ,
55 X_ATTRIBUTE13 in VARCHAR2 ,
56 X_ATTRIBUTE14 in VARCHAR2 ,
57 X_ATTRIBUTE15 in VARCHAR2
58 ) is
59 cursor C is select MESSAGE_ID from CS_FORUM_MESSAGES_B
60 where MESSAGE_ID = X_MESSAGE_ID
61 ;
62 begin
63 insert into CS_FORUM_MESSAGES_B (
64 MESSAGE_ID,
65 MESSAGE_NUMBER,
66 MESSAGE_TYPE,
67 MESSAGE_NAME,
68 POSTED_DATE,
69 POSTED_USER,
70 ACTIVE_STATUS,
71 DISTRIBUTION_TYPE,
72 CREATION_DATE,
73 CREATED_BY,
74 LAST_UPDATE_DATE,
75 LAST_UPDATED_BY,
76 LAST_UPDATE_LOGIN,
77 ATTRIBUTE_CATEGORY,
78 ATTRIBUTE1,
79 ATTRIBUTE2,
80 ATTRIBUTE3,
81 ATTRIBUTE4,
82 ATTRIBUTE5,
83 ATTRIBUTE6,
84 ATTRIBUTE7,
85 ATTRIBUTE8,
86 ATTRIBUTE9,
87 ATTRIBUTE10,
88 ATTRIBUTE11,
89 ATTRIBUTE12,
90 ATTRIBUTE13,
91 ATTRIBUTE14,
92 ATTRIBUTE15
93 ) values (
94 X_MESSAGE_ID,
95 X_MESSAGE_NUMBER,
96 X_MESSAGE_TYPE,
97 X_MESSAGE_NAME,
98 X_POSTED_DATE,
99 X_POSTED_USER,
100 X_ACTIVE_STATUS,
101 X_DISTRIBUTION_TYPE,
102 X_CREATION_DATE,
103 X_CREATED_BY,
104 X_LAST_UPDATE_DATE,
105 X_LAST_UPDATED_BY,
106 X_LAST_UPDATE_LOGIN,
107 X_ATTRIBUTE_CATEGORY,
108 X_ATTRIBUTE1,
109 X_ATTRIBUTE2,
110 X_ATTRIBUTE3,
111 X_ATTRIBUTE4,
112 X_ATTRIBUTE5,
113 X_ATTRIBUTE6,
114 X_ATTRIBUTE7,
115 X_ATTRIBUTE8,
116 X_ATTRIBUTE9,
117 X_ATTRIBUTE10,
118 X_ATTRIBUTE11,
119 X_ATTRIBUTE12,
120 X_ATTRIBUTE13,
121 X_ATTRIBUTE14,
122 X_ATTRIBUTE15
123 );
124
125 insert into CS_FORUM_MESSAGES_TL (
126 MESSAGE_ID,
127 NAME,
128 DESCRIPTION,
129 CREATION_DATE,
130 CREATED_BY,
131 LAST_UPDATE_DATE,
132 LAST_UPDATED_BY,
133 LAST_UPDATE_LOGIN,
134 LANGUAGE,
135 SOURCE_LANG,
136 COMPOSITE_ASSOC_COL --UNISRCH
137 ) select
138 X_MESSAGE_ID,
139 X_NAME,
140 X_DESCRIPTION,
141 X_CREATION_DATE,
142 X_CREATED_BY,
143 X_LAST_UPDATE_DATE,
144 X_LAST_UPDATED_BY,
145 X_LAST_UPDATE_LOGIN,
146 L.LANGUAGE_CODE,
147 userenv('LANG'),
148 'a'
149 from FND_LANGUAGES L
150 where L.INSTALLED_FLAG in ('I', 'B')
151 and not exists
152 (select NULL
153 from CS_FORUM_MESSAGES_TL T
154 where T.MESSAGE_ID = X_MESSAGE_ID
155 and T.LANGUAGE = L.LANGUAGE_CODE);
156
157 open c;
158 /*
159 fetch c into X_ROWID;
160 if (c%notfound) then
161 close c;
162 raise no_data_found;
163 end if;
164 */
165 close c;
166
167 end INSERT_ROW;
168
169 procedure LOCK_ROW (
170 X_MESSAGE_ID in NUMBER,
171 X_MESSAGE_NUMBER in NUMBER,
172 X_MESSAGE_TYPE in VARCHAR2,
173 X_MESSAGE_NAME in VARCHAR2,
174 X_NAME in VARCHAR2,
175 X_DESCRIPTION in CLOB,
176 X_ATTRIBUTE_CATEGORY in VARCHAR2 ,
177 X_ATTRIBUTE1 in VARCHAR2 ,
178 X_ATTRIBUTE2 in VARCHAR2 ,
179 X_ATTRIBUTE3 in VARCHAR2 ,
180 X_ATTRIBUTE4 in VARCHAR2 ,
181 X_ATTRIBUTE5 in VARCHAR2 ,
182 X_ATTRIBUTE6 in VARCHAR2 ,
183 X_ATTRIBUTE7 in VARCHAR2 ,
184 X_ATTRIBUTE8 in VARCHAR2 ,
185 X_ATTRIBUTE9 in VARCHAR2 ,
186 X_ATTRIBUTE10 in VARCHAR2 ,
187 X_ATTRIBUTE11 in VARCHAR2 ,
188 X_ATTRIBUTE12 in VARCHAR2 ,
189 X_ATTRIBUTE13 in VARCHAR2 ,
190 X_ATTRIBUTE14 in VARCHAR2 ,
191 X_ATTRIBUTE15 in VARCHAR2
192 ) is
193 cursor c is select
194 MESSAGE_ID,
195 MESSAGE_NUMBER,
196 MESSAGE_TYPE,
197 MESSAGE_NAME,
198 ATTRIBUTE_CATEGORY,
199 ATTRIBUTE1,
200 ATTRIBUTE2,
201 ATTRIBUTE3,
202 ATTRIBUTE4,
203 ATTRIBUTE5,
204 ATTRIBUTE6,
205 ATTRIBUTE7,
206 ATTRIBUTE8,
207 ATTRIBUTE9,
208 ATTRIBUTE10,
209 ATTRIBUTE11,
210 ATTRIBUTE12,
211 ATTRIBUTE13,
212 ATTRIBUTE14,
213 ATTRIBUTE15
214 from CS_FORUM_MESSAGES_B
215 where MESSAGE_ID = X_MESSAGE_ID
216 for update of MESSAGE_ID nowait;
217 recinfo c%rowtype;
218
219 cursor c1 is select
220 NAME,
221 DESCRIPTION,
222 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
223 from CS_FORUM_MESSAGES_TL
224 where MESSAGE_ID = X_MESSAGE_ID
225 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
226 for update of MESSAGE_ID nowait;
227 begin
228 open c;
229 fetch c into recinfo;
230 if (c%notfound) then
231 close c;
232 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
233 app_exception.raise_exception;
234 end if;
235 close c;
236 if (
237 ((recinfo.MESSAGE_ID = X_MESSAGE_ID)
238 OR ((recinfo.MESSAGE_ID is null) AND (X_MESSAGE_ID is null)))
239 AND ((recinfo.MESSAGE_NUMBER = X_MESSAGE_NUMBER)
240 OR ((recinfo.MESSAGE_NUMBER is null) AND (X_MESSAGE_NUMBER is null)))
241 AND ((recinfo.MESSAGE_NAME = X_MESSAGE_NAME)
242 OR ((recinfo.MESSAGE_NAME is null) AND (X_MESSAGE_NAME is null)))
243 AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
244 OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
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.ATTRIBUTE8 = X_ATTRIBUTE8)
260 OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
261 AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
262 OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
263 AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
264 OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
265 AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
266 OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
267 AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
268 OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
269 AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
270 OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
271 AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
272 OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
273 AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
274 OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
275 ) then
276 null;
277 else
278 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
279 app_exception.raise_exception;
280 end if;
281
282 for tlinfo in c1 loop
283 if (tlinfo.BASELANG = 'Y') then
284 if ( ((tlinfo.NAME = X_NAME)
285 OR ((tlinfo.NAME is null) AND (X_NAME is null)))
286 AND ((
287 dbms_lob.compare(X_DESCRIPTION, tlinfo.DESCRIPTION,
288 dbms_lob.getlength(X_DESCRIPTION),1,1)=0 )
289 --tlinfo.DESCRIPTION = X_DESCRIPTION)
290 OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
291 ) then
292 null;
293 else
294 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
295 app_exception.raise_exception;
296 end if;
297 end if;
298 end loop;
299 return;
300 end LOCK_ROW;
301
302 procedure UPDATE_ROW (
303 X_MESSAGE_ID in NUMBER,
304 X_MESSAGE_NUMBER in NUMBER,
305 X_MESSAGE_TYPE in VARCHAR2,
306 X_MESSAGE_NAME in VARCHAR2,
307 X_NAME in VARCHAR2,
308 X_POSTED_DATE in DATE,
309 X_POSTED_USER in NUMBER,
310 X_DESCRIPTION in CLOB,
311 X_ACTIVE_STATUS in VARCHAR2,
312 X_DISTRIBUTION_TYPE in VARCHAR2,
313 X_CREATION_DATE in DATE,
314 X_CREATED_BY in NUMBER,
315 X_LAST_UPDATE_DATE in DATE,
316 X_LAST_UPDATED_BY in NUMBER,
317 X_LAST_UPDATE_LOGIN in NUMBER,
318 X_ATTRIBUTE_CATEGORY in VARCHAR2 ,
319 X_ATTRIBUTE1 in VARCHAR2 ,
320 X_ATTRIBUTE2 in VARCHAR2 ,
321 X_ATTRIBUTE3 in VARCHAR2 ,
322 X_ATTRIBUTE4 in VARCHAR2 ,
323 X_ATTRIBUTE5 in VARCHAR2 ,
324 X_ATTRIBUTE6 in VARCHAR2 ,
325 X_ATTRIBUTE7 in VARCHAR2 ,
326 X_ATTRIBUTE8 in VARCHAR2 ,
327 X_ATTRIBUTE9 in VARCHAR2 ,
328 X_ATTRIBUTE10 in VARCHAR2 ,
329 X_ATTRIBUTE11 in VARCHAR2 ,
330 X_ATTRIBUTE12 in VARCHAR2 ,
331 X_ATTRIBUTE13 in VARCHAR2 ,
332 X_ATTRIBUTE14 in VARCHAR2 ,
333 X_ATTRIBUTE15 in VARCHAR2
334 ) is
335 begin
336 update CS_FORUM_MESSAGES_B set
337 MESSAGE_TYPE = X_MESSAGE_TYPE,
338 MESSAGE_NAME = X_MESSAGE_NAME,
339 POSTED_DATE = X_POSTED_DATE,
340 POSTED_USER = X_POSTED_USER,
341 ACTIVE_STATUS = X_ACTIVE_STATUS,
342 DISTRIBUTION_TYPE = X_DISTRIBUTION_TYPE,
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 ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
347 ATTRIBUTE1 = X_ATTRIBUTE1,
348 ATTRIBUTE2 = X_ATTRIBUTE2,
349 ATTRIBUTE3 = X_ATTRIBUTE3,
350 ATTRIBUTE4 = X_ATTRIBUTE4,
351 ATTRIBUTE5 = X_ATTRIBUTE5,
352 ATTRIBUTE6 = X_ATTRIBUTE6,
353 ATTRIBUTE7 = X_ATTRIBUTE7,
354 ATTRIBUTE8 = X_ATTRIBUTE8,
355 ATTRIBUTE9 = X_ATTRIBUTE9,
356 ATTRIBUTE10 = X_ATTRIBUTE10,
357 ATTRIBUTE11 = X_ATTRIBUTE11,
358 ATTRIBUTE12 = X_ATTRIBUTE12,
359 ATTRIBUTE13 = X_ATTRIBUTE13,
360 ATTRIBUTE14 = X_ATTRIBUTE14,
361 ATTRIBUTE15 = X_ATTRIBUTE15
362 where MESSAGE_ID = X_MESSAGE_ID;
363
364 if (sql%notfound) then
365 raise no_data_found;
366 end if;
367
368 update CS_FORUM_MESSAGES_TL set
369 NAME = X_NAME,
370 DESCRIPTION = X_DESCRIPTION,
371 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
375 COMPOSITE_ASSOC_COL = 'b' --UNISRCH
372 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
373 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
374 SOURCE_LANG = userenv('LANG'),
376 where MESSAGE_ID = X_MESSAGE_ID
377 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
378
379 if (sql%notfound) then
380 raise no_data_found;
381 end if;
382 end UPDATE_ROW;
383
384 procedure DELETE_ROW (
385 X_MESSAGE_ID in NUMBER
386 ) is
387 begin
388 delete from CS_FORUM_MESSAGES_TL
389 where MESSAGE_ID = X_MESSAGE_ID;
390
391 /*
392 if (sql%notfound) then
393 raise no_data_found;
394 end if;
395 */
396
397 delete from CS_FORUM_MESSAGES_B
398 where MESSAGE_ID = X_MESSAGE_ID;
399
400 /*
401 if (sql%notfound) then
402 raise no_data_found;
403 end if;
404 */
405 end DELETE_ROW;
406
407 procedure ADD_LANGUAGE
408 is
409 begin
410 delete from CS_FORUM_MESSAGES_TL T
411 where not exists
412 (select NULL
413 from CS_FORUM_MESSAGES_B B
414 where B.MESSAGE_ID = T.MESSAGE_ID
415 );
416
417 update CS_FORUM_MESSAGES_TL T set (
418 NAME,
419 DESCRIPTION,
420 COMPOSITE_ASSOC_COL --UNISRCH
421 ) = (select
422 B.NAME,
423 B.DESCRIPTION,
424 'a'
425 from CS_FORUM_MESSAGES_TL B
426 where B.MESSAGE_ID = T.MESSAGE_ID
427 and B.LANGUAGE = T.SOURCE_LANG)
428 where (
429 T.MESSAGE_ID,
430 T.LANGUAGE
431 ) in (select
432 SUBT.MESSAGE_ID,
433 SUBT.LANGUAGE
434 from CS_FORUM_MESSAGES_TL SUBB, CS_FORUM_MESSAGES_TL SUBT
435 where SUBB.MESSAGE_ID = SUBT.MESSAGE_ID
436 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
437 and (SUBB.NAME <> SUBT.NAME
438 or (SUBB.NAME is null and SUBT.NAME is not null)
439 or (SUBB.NAME is not null and SUBT.NAME is null)
440 or --SUBB.DESCRIPTION <> SUBT.DESCRIPTION
441 dbms_lob.compare(SUBB.DESCRIPTION, SUBT.DESCRIPTION,
442 dbms_lob.getlength(SUBB.DESCRIPTION), 1, 1) <> 0
443 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
444 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
445 ));
446
447 insert into CS_FORUM_MESSAGES_TL (
448 MESSAGE_ID,
449 NAME,
450 DESCRIPTION,
451 CREATION_DATE,
452 CREATED_BY,
453 LAST_UPDATE_DATE,
454 LAST_UPDATED_BY,
455 LAST_UPDATE_LOGIN,
456 LANGUAGE,
457 SOURCE_LANG,
458 COMPOSITE_ASSOC_COL --UNISRCH
459 ) select
460 B.MESSAGE_ID,
461 B.NAME,
462 B.DESCRIPTION,
463 B.CREATION_DATE,
464 B.CREATED_BY,
465 B.LAST_UPDATE_DATE,
466 B.LAST_UPDATED_BY,
467 B.LAST_UPDATE_LOGIN,
468 L.LANGUAGE_CODE,
469 B.SOURCE_LANG,
470 'a'
471 from CS_FORUM_MESSAGES_TL B, FND_LANGUAGES L
472 where L.INSTALLED_FLAG in ('I', 'B')
473 and B.LANGUAGE = userenv('LANG')
474 and not exists
475 (select NULL
476 from CS_FORUM_MESSAGES_TL T
477 where T.MESSAGE_ID = B.MESSAGE_ID
478 and T.LANGUAGE = L.LANGUAGE_CODE);
479 end ADD_LANGUAGE;
480
481 PROCEDURE TRANSLATE_ROW(
482 X_MESSAGE_ID in number,
483 x_name in varchar2,
484 x_description in varchar2,
485 x_owner in varchar2
486 )
487 is
488 begin
489 update cs_forum_messages_tl set
490 description = x_description,
491 name = x_name,
492 LAST_UPDATE_DATE = sysdate,
493 LAST_UPDATED_BY = decode(x_owner, 'SEED', 1, 0),
494 LAST_UPDATE_LOGIN = 0,
495 SOURCE_LANG = userenv('LANG'),
496 COMPOSITE_ASSOC_COL = 'b' --UNISRCH
497 where userenv('LANG') in (LANGUAGE, SOURCE_LANG)
498 and MESSAGE_ID = X_MESSAGE_ID;
499 end TRANSLATE_ROW;
500
501
502
503 procedure LOAD_ROW (
504 X_MESSAGE_ID in NUMBER,
505 X_MESSAGE_NUMBER in NUMBER,
506 X_MESSAGE_TYPE in VARCHAR2,
507 X_MESSAGE_NAME in VARCHAR2,
508 X_NAME in VARCHAR2,
509 X_POSTED_DATE in DATE,
510 X_POSTED_USER in NUMBER,
511 X_DESCRIPTION in VARCHAR2,
512 X_ACTIVE_STATUS in VARCHAR2,
513 X_DISTRIBUTION_TYPE in VARCHAR2,
514 x_owner in varchar2
515
516 ) is
517 l_user_id number;
518 l_clob CLOB := null;
519 l_offset number;
520 l_amt number;
521
522 begin
523 if (x_owner = 'SEED') then
524 l_user_id := 1;
525 else
526 l_user_id := 0;
527 end if;
528
529 if( X_DESCRIPTION is not null) then
530
531 dbms_lob.createtemporary(l_clob, TRUE, DBMS_LOB.SESSION);
532 l_offset := 1;
533 l_amt := length(x_description);
534 dbms_lob.write(l_clob, l_amt, l_offset, x_description);
535
536 end if;
537
538 CS_FORUM_MESSAGES_PKG.Update_Row(
539 X_MESSAGE_ID => X_MESSAGE_ID,
540 X_MESSAGE_NUMBER => X_MESSAGE_NUMBER,
544 X_POSTED_DATE => X_POSTED_DATE,
541 X_MESSAGE_TYPE => X_MESSAGE_TYPE,
542 X_MESSAGE_NAME => X_MESSAGE_NAME,
543 X_NAME => X_NAME,
545 X_POSTED_USER => X_POSTED_USER,
546 X_DESCRIPTION => l_clob,
547 X_ACTIVE_STATUS => X_ACTIVE_STATUS,
548 X_DISTRIBUTION_TYPE => X_DISTRIBUTION_TYPE,
549 X_Creation_Date => sysdate,
550 X_Created_By => l_user_id,
551 X_Last_Update_Date => sysdate,
552 X_Last_Updated_By => l_user_id,
553 X_Last_Update_Login => 0);
554
555 exception
556 when no_data_found then
557 CS_FORUM_MESSAGES_PKG.Insert_Row(
558 X_MESSAGE_ID => X_MESSAGE_ID,
559 X_MESSAGE_NUMBER => X_MESSAGE_NUMBER,
560 X_MESSAGE_TYPE => X_MESSAGE_TYPE,
561 X_MESSAGE_NAME => X_MESSAGE_NAME,
562 X_NAME => X_NAME,
563 X_POSTED_DATE => X_POSTED_DATE,
564 X_POSTED_USER => X_POSTED_USER,
565 X_DESCRIPTION => l_clob,
566 X_ACTIVE_STATUS => X_ACTIVE_STATUS,
567 X_DISTRIBUTION_TYPE => X_DISTRIBUTION_TYPE,
568 X_Creation_Date => sysdate,
569 X_Created_By => l_user_id,
570 X_Last_Update_Date => sysdate,
571 X_Last_Updated_By => l_user_id,
572 X_Last_Update_Login => 0);
573
574
575 if(x_description is not null) then
576 dbms_lob.freetemporary(l_clob);
577 end if;
578
579 end LOAD_ROW;
580
581 end CS_FORUM_MESSAGES_PKG;