175: IF ( l_status = 'PUB' )
176: THEN
177: -- If the solution content cache is populated, then use it
178: -- for the indexed content.
179: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
180: THEN
181: -- Clear out the output CLOB buffer
182: dbms_lob.trim(p_clob, 0);
183:
178: -- for the indexed content.
179: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
180: THEN
181: -- Clear out the output CLOB buffer
182: dbms_lob.trim(p_clob, 0);
183:
184: -- Copy content cache into output CLOB buffer for indexing
185: l_clob_len := dbms_lob.getlength(l_clob);
186: dbms_lob.copy(p_clob, l_clob, l_clob_len, 1, 1);
181: -- Clear out the output CLOB buffer
182: dbms_lob.trim(p_clob, 0);
183:
184: -- Copy content cache into output CLOB buffer for indexing
185: l_clob_len := dbms_lob.getlength(l_clob);
186: dbms_lob.copy(p_clob, l_clob, l_clob_len, 1, 1);
187: ELSE
188: -- Call procedure to return synthesized solution content
189: -- for indexing. CLOB is passed by reference and sub
182: dbms_lob.trim(p_clob, 0);
183:
184: -- Copy content cache into output CLOB buffer for indexing
185: l_clob_len := dbms_lob.getlength(l_clob);
186: dbms_lob.copy(p_clob, l_clob, l_clob_len, 1, 1);
187: ELSE
188: -- Call procedure to return synthesized solution content
189: -- for indexing. CLOB is passed by reference and sub
190: -- procedures will change the CLOB directly.
280: l_stmt_name VARCHAR2(32000) := '';
281: empty_flag BOOLEAN := TRUE;
282: BEGIN
283: -- temp clob lives for at most the duration of call.
284: dbms_lob.createtemporary(l_temp_clob, TRUE, dbms_lob.call);
285:
286: DBMS_LOB.OPEN(l_temp_clob,DBMS_LOB.LOB_READWRITE);
287:
288: -- Clear out the output CLOB buffer
282: BEGIN
283: -- temp clob lives for at most the duration of call.
284: dbms_lob.createtemporary(l_temp_clob, TRUE, dbms_lob.call);
285:
286: DBMS_LOB.OPEN(l_temp_clob,DBMS_LOB.LOB_READWRITE);
287:
288: -- Clear out the output CLOB buffer
289: dbms_lob.trim(p_clob, 0);
290:
285:
286: DBMS_LOB.OPEN(l_temp_clob,DBMS_LOB.LOB_READWRITE);
287:
288: -- Clear out the output CLOB buffer
289: dbms_lob.trim(p_clob, 0);
290:
291: -- write the solution number to clob
292: l_data := l_newline||p_soln_number;
293:
299: l_data := l_data||' '||l_soln_title||l_newline;
300: l_data := Remove_Tags(l_data);
301: l_amt := LENGTH(l_data);
302:
303: dbms_lob.writeappend(p_clob, l_amt, l_data);
304:
305: -- Construct the header sections
306: -- write solution type id
307: l_sections := l_newline||'
327: l_amt := LENGTH(l_stmt_name);
328: IF l_amt >= 31000 THEN
329: -- flush l_stmt_name to the p_clob
330: l_stmt_name := Remove_Tags(l_stmt_name);
331: dbms_lob.writeappend(p_clob, l_amt, l_stmt_name);
332: l_stmt_name := l_newline;
333: END IF;
334:
335: -- Write the statement description to clob
333: END IF;
334:
335: -- Write the statement description to clob
336: l_clob := rec1.description;
337: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
338: THEN
339: l_clob := Remove_Tags_Clob(l_clob, l_temp_clob);
340: l_clob_len := dbms_lob.getlength(l_clob);
341: p_clob_len := dbms_lob.getlength(p_clob);
336: l_clob := rec1.description;
337: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
338: THEN
339: l_clob := Remove_Tags_Clob(l_clob, l_temp_clob);
340: l_clob_len := dbms_lob.getlength(l_clob);
341: p_clob_len := dbms_lob.getlength(p_clob);
342: dbms_lob.copy(p_clob, l_clob, l_clob_len, p_clob_len+1, 1);
343: END IF;
344:
337: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
338: THEN
339: l_clob := Remove_Tags_Clob(l_clob, l_temp_clob);
340: l_clob_len := dbms_lob.getlength(l_clob);
341: p_clob_len := dbms_lob.getlength(p_clob);
342: dbms_lob.copy(p_clob, l_clob, l_clob_len, p_clob_len+1, 1);
343: END IF;
344:
345: -- Repeat each statement id for 10 times.
338: THEN
339: l_clob := Remove_Tags_Clob(l_clob, l_temp_clob);
340: l_clob_len := dbms_lob.getlength(l_clob);
341: p_clob_len := dbms_lob.getlength(p_clob);
342: dbms_lob.copy(p_clob, l_clob, l_clob_len, p_clob_len+1, 1);
343: END IF;
344:
345: -- Repeat each statement id for 10 times.
346: -- Need revisit in 115.x. See issue #1309
351:
352: l_amt := LENGTH(l_stmt_name);
353: IF l_amt > 0 THEN
354: l_stmt_name := Remove_Tags(l_stmt_name);
355: dbms_lob.writeappend(p_clob, l_amt, l_stmt_name);
356: END IF;
357:
358: l_sections := l_sections || '';
359:
406:
407: l_amt := LENGTH(l_data);
408: IF ( l_amt > 0 )
409: THEN
410: dbms_lob.writeappend(p_clob, l_amt, l_data);
411: END IF;
412:
413: l_amt := LENGTH(l_sections);
414: IF ( l_amt > 0 )
412:
413: l_amt := LENGTH(l_sections);
414: IF ( l_amt > 0 )
415: THEN
416: dbms_lob.writeappend(p_clob, l_amt, l_sections);
417: END IF;
418:
419: DBMS_LOB.CLOSE(l_temp_clob);
420: dbms_lob.freetemporary(l_temp_clob);
415: THEN
416: dbms_lob.writeappend(p_clob, l_amt, l_sections);
417: END IF;
418:
419: DBMS_LOB.CLOSE(l_temp_clob);
420: dbms_lob.freetemporary(l_temp_clob);
421:
422: END Single_Synthesize_Set_Content;
423: -- end (perf11510)
416: dbms_lob.writeappend(p_clob, l_amt, l_sections);
417: END IF;
418:
419: DBMS_LOB.CLOSE(l_temp_clob);
420: dbms_lob.freetemporary(l_temp_clob);
421:
422: END Single_Synthesize_Set_Content;
423: -- end (perf11510)
424: --Start 12.1.3
473: IF ( l_status = 'PUB' )
474: THEN
475: -- If the solution content cache is populated, then use it
476: -- for the indexed content.
477: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
478: THEN
479: -- Clear out the output CLOB buffer
480: dbms_lob.trim(p_clob, 0);
481:
476: -- for the indexed content.
477: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
478: THEN
479: -- Clear out the output CLOB buffer
480: dbms_lob.trim(p_clob, 0);
481:
482: -- Copy content cache into output CLOB buffer for indexing
483: l_clob_len := dbms_lob.getlength(l_clob);
484: dbms_lob.copy(p_clob, l_clob, l_clob_len, 1, 1);
479: -- Clear out the output CLOB buffer
480: dbms_lob.trim(p_clob, 0);
481:
482: -- Copy content cache into output CLOB buffer for indexing
483: l_clob_len := dbms_lob.getlength(l_clob);
484: dbms_lob.copy(p_clob, l_clob, l_clob_len, 1, 1);
485: ELSE
486: -- Call procedure to return synthesized solution content
487: -- for indexing. CLOB is passed by reference and sub
480: dbms_lob.trim(p_clob, 0);
481:
482: -- Copy content cache into output CLOB buffer for indexing
483: l_clob_len := dbms_lob.getlength(l_clob);
484: dbms_lob.copy(p_clob, l_clob, l_clob_len, 1, 1);
485: ELSE
486: -- Call procedure to return synthesized solution content
487: -- for indexing. CLOB is passed by reference and sub
488: -- procedures will change the CLOB directly.
587: l_clob_len NUMBER;
588: p_clob_len NUMBER;
589: --12.1.3
590: src_blob BLOB := null;
591: amount INTEGER := dbms_lob.lobmaxsize;
592: dest_offset INTEGER :=1;
593: -- src_offset INTEGER :=1;
594: blob_csid NUMBER := dbms_lob.default_csid;
595: lang_context INTEGER := dbms_lob.default_lang_ctx;
590: src_blob BLOB := null;
591: amount INTEGER := dbms_lob.lobmaxsize;
592: dest_offset INTEGER :=1;
593: -- src_offset INTEGER :=1;
594: blob_csid NUMBER := dbms_lob.default_csid;
595: lang_context INTEGER := dbms_lob.default_lang_ctx;
596: warning INTEGER;
597: --12.1.3
598:
591: amount INTEGER := dbms_lob.lobmaxsize;
592: dest_offset INTEGER :=1;
593: -- src_offset INTEGER :=1;
594: blob_csid NUMBER := dbms_lob.default_csid;
595: lang_context INTEGER := dbms_lob.default_lang_ctx;
596: warning INTEGER;
597: --12.1.3
598:
599: l_stmt_name VARCHAR2(32000) := '';
599: l_stmt_name VARCHAR2(32000) := '';
600: empty_flag BOOLEAN := TRUE;
601: BEGIN
602: -- temp clob lives for at most the duration of call.
603: dbms_lob.createtemporary(l_temp_clob, TRUE, dbms_lob.call);
604:
605: DBMS_LOB.OPEN(l_temp_clob,DBMS_LOB.LOB_READWRITE);
606:
607: -- Clear out the output CLOB buffer
601: BEGIN
602: -- temp clob lives for at most the duration of call.
603: dbms_lob.createtemporary(l_temp_clob, TRUE, dbms_lob.call);
604:
605: DBMS_LOB.OPEN(l_temp_clob,DBMS_LOB.LOB_READWRITE);
606:
607: -- Clear out the output CLOB buffer
608: dbms_lob.trim(p_clob, 0);
609:
604:
605: DBMS_LOB.OPEN(l_temp_clob,DBMS_LOB.LOB_READWRITE);
606:
607: -- Clear out the output CLOB buffer
608: dbms_lob.trim(p_clob, 0);
609:
610: -- write the solution number to clob
611: l_data := l_newline||p_soln_number;
612:
618: l_data := l_data||' '||l_soln_title||l_newline;
619: l_data := Remove_Tags(l_data);
620: l_amt := LENGTH(l_data);
621:
622: dbms_lob.writeappend(p_clob, l_amt, l_data);
623:
624: -- Construct the header sections
625: -- write solution type id
626: l_sections := l_newline||'
646: l_amt := LENGTH(l_stmt_name);
647: IF l_amt >= 31000 THEN
648: -- flush l_stmt_name to the p_clob
649: l_stmt_name := Remove_Tags(l_stmt_name);
650: dbms_lob.writeappend(p_clob, l_amt, l_stmt_name);
651: l_stmt_name := l_newline;
652: END IF;
653:
654: -- Write the statement description to clob
652: END IF;
653:
654: -- Write the statement description to clob
655: l_clob := rec1.description;
656: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
657: THEN
658: l_clob := Remove_Tags_Clob(l_clob, l_temp_clob);
659: l_clob_len := dbms_lob.getlength(l_clob);
660: p_clob_len := dbms_lob.getlength(p_clob);
655: l_clob := rec1.description;
656: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
657: THEN
658: l_clob := Remove_Tags_Clob(l_clob, l_temp_clob);
659: l_clob_len := dbms_lob.getlength(l_clob);
660: p_clob_len := dbms_lob.getlength(p_clob);
661: dbms_lob.copy(p_clob, l_clob, l_clob_len, p_clob_len+1, 1);
662: END IF;
663:
656: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
657: THEN
658: l_clob := Remove_Tags_Clob(l_clob, l_temp_clob);
659: l_clob_len := dbms_lob.getlength(l_clob);
660: p_clob_len := dbms_lob.getlength(p_clob);
661: dbms_lob.copy(p_clob, l_clob, l_clob_len, p_clob_len+1, 1);
662: END IF;
663:
664: -- Repeat each statement id for 10 times.
657: THEN
658: l_clob := Remove_Tags_Clob(l_clob, l_temp_clob);
659: l_clob_len := dbms_lob.getlength(l_clob);
660: p_clob_len := dbms_lob.getlength(p_clob);
661: dbms_lob.copy(p_clob, l_clob, l_clob_len, p_clob_len+1, 1);
662: END IF;
663:
664: -- Repeat each statement id for 10 times.
665: -- Need revisit in 115.x. See issue #1309
670:
671: l_amt := LENGTH(l_stmt_name);
672: IF l_amt > 0 THEN
673: l_stmt_name := Remove_Tags(l_stmt_name);
674: dbms_lob.writeappend(p_clob, l_amt, l_stmt_name);
675: END IF;
676:
677: l_sections := l_sections || '';
678:
732: l_sections := l_sections||' a'||TO_CHAR(rec8.document_id) ||'a ';
733: l_amt := LENGTH(l_data);
734:
735: IF(l_amt>0) THEN
736: dbms_lob.writeappend(p_clob, l_amt, l_data);
737: END IF;
738:
739: -- Write the statement description to clob
740: --Commented to fix 11739796
740: --Commented to fix 11739796
741: /* src_blob := rec8.file_data;
742: IF FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL THEN
743: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'cs.plsql.cskbdstb.pls',
744: 'Before dbms_lob.converttoclob- src_blob : || src_blob');
745: END IF;
746: dbms_lob.converttoclob(l_clob ,src_blob, amount, dest_offset, src_offset, blob_csid,lang_context, warning);
747: IF FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL THEN
748: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'cs.plsql.cskbdstb.pls',
742: IF FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL THEN
743: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'cs.plsql.cskbdstb.pls',
744: 'Before dbms_lob.converttoclob- src_blob : || src_blob');
745: END IF;
746: dbms_lob.converttoclob(l_clob ,src_blob, amount, dest_offset, src_offset, blob_csid,lang_context, warning);
747: IF FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL THEN
748: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'cs.plsql.cskbdstb.pls',
749: 'After dbms_lob.converttoclob- l_clob : || l_clob' );
750: END IF;
745: END IF;
746: dbms_lob.converttoclob(l_clob ,src_blob, amount, dest_offset, src_offset, blob_csid,lang_context, warning);
747: IF FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL THEN
748: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'cs.plsql.cskbdstb.pls',
749: 'After dbms_lob.converttoclob- l_clob : || l_clob' );
750: END IF;
751:
752: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
753: THEN
748: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'cs.plsql.cskbdstb.pls',
749: 'After dbms_lob.converttoclob- l_clob : || l_clob' );
750: END IF;
751:
752: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
753: THEN
754: l_clob := Remove_Tags_Clob(l_clob, l_temp_clob);
755: l_clob_len := dbms_lob.getlength(l_clob);
756: p_clob_len := dbms_lob.getlength(p_clob);
751:
752: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
753: THEN
754: l_clob := Remove_Tags_Clob(l_clob, l_temp_clob);
755: l_clob_len := dbms_lob.getlength(l_clob);
756: p_clob_len := dbms_lob.getlength(p_clob);
757: dbms_lob.copy(p_clob, l_clob, l_clob_len, p_clob_len+1, 1);
758: END IF;*/
759:
752: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
753: THEN
754: l_clob := Remove_Tags_Clob(l_clob, l_temp_clob);
755: l_clob_len := dbms_lob.getlength(l_clob);
756: p_clob_len := dbms_lob.getlength(p_clob);
757: dbms_lob.copy(p_clob, l_clob, l_clob_len, p_clob_len+1, 1);
758: END IF;*/
759:
760: empty_flag := FALSE;
753: THEN
754: l_clob := Remove_Tags_Clob(l_clob, l_temp_clob);
755: l_clob_len := dbms_lob.getlength(l_clob);
756: p_clob_len := dbms_lob.getlength(p_clob);
757: dbms_lob.copy(p_clob, l_clob, l_clob_len, p_clob_len+1, 1);
758: END IF;*/
759:
760: empty_flag := FALSE;
761: IF empty_flag THEN
771:
772: l_amt := LENGTH(l_data);
773: IF ( l_amt > 0 )
774: THEN
775: dbms_lob.writeappend(p_clob, l_amt, l_data);
776: END IF;
777:
778: l_amt := LENGTH(l_sections);
779: IF ( l_amt > 0 )
777:
778: l_amt := LENGTH(l_sections);
779: IF ( l_amt > 0 )
780: THEN
781: dbms_lob.writeappend(p_clob, l_amt, l_sections);
782: END IF;
783:
784: DBMS_LOB.CLOSE(l_temp_clob);
785: dbms_lob.freetemporary(l_temp_clob);
780: THEN
781: dbms_lob.writeappend(p_clob, l_amt, l_sections);
782: END IF;
783:
784: DBMS_LOB.CLOSE(l_temp_clob);
785: dbms_lob.freetemporary(l_temp_clob);
786:
787: END Single_Sync_Set_Attach_Content;
788: -- end (perf11510)
781: dbms_lob.writeappend(p_clob, l_amt, l_sections);
782: END IF;
783:
784: DBMS_LOB.CLOSE(l_temp_clob);
785: dbms_lob.freetemporary(l_temp_clob);
786:
787: END Single_Sync_Set_Attach_Content;
788: -- end (perf11510)
789:
833: -- Bug 3455203 - Perf Changes:
834: -- Consolidated code from Synthesize_Statement_Content to here:
835:
836: -- temp clob lives for at most the duration of call.
837: dbms_lob.createtemporary(l_temp_clob, TRUE, dbms_lob.call);
838: -- Clear out the output CLOB buffer
839: dbms_lob.trim(p_clob, 0);
840:
841: -- Write out the statement text content
835:
836: -- temp clob lives for at most the duration of call.
837: dbms_lob.createtemporary(l_temp_clob, TRUE, dbms_lob.call);
838: -- Clear out the output CLOB buffer
839: dbms_lob.trim(p_clob, 0);
840:
841: -- Write out the statement text content
842: Write_Stmt_Header_Cont_Hlp(l_statement_id, l_lang, p_clob, l_temp_clob,
843: l_statement_number, l_name, l_description);
844: -- Write out metadata sections
845: Write_Stmt_Header_Sect_Hlp(l_statement_id, l_lang, p_clob,
846: l_statement_number, l_type_id, l_access_level);
847: -- explicitly free the clob
848: dbms_lob.freetemporary(l_temp_clob);
849: --
850:
851: -- Append the statement security information into the index
852: -- at index time.
868:
869: BEGIN
870:
871: -- temp clob lives for at most the duration of call.
872: dbms_lob.createtemporary(l_temp_clob, TRUE, dbms_lob.call);
873:
874: -- Clear out the output CLOB buffer
875: dbms_lob.trim(p_clob, 0);
876:
871: -- temp clob lives for at most the duration of call.
872: dbms_lob.createtemporary(l_temp_clob, TRUE, dbms_lob.call);
873:
874: -- Clear out the output CLOB buffer
875: dbms_lob.trim(p_clob, 0);
876:
877: -- Write out the solution text content
878: Write_Soln_Header_Cont_Hlp( p_solution_id, p_lang, p_clob, l_temp_clob );
879: Write_Soln_Statement_Cont_Hlp( p_solution_id, p_lang, p_clob, l_temp_clob );
887: Write_Soln_Product_Sect_Hlp( p_solution_id, p_clob );
888: Write_Soln_Platform_Sect_Hlp( p_solution_id, p_clob );
889:
890: -- explicitly free the clob
891: dbms_lob.freetemporary(l_temp_clob);
892: END Synthesize_Solution_Content;
893:
894:
895: --Start 12.1.3
902:
903: BEGIN
904:
905: -- temp clob lives for at most the duration of call.
906: dbms_lob.createtemporary(l_temp_clob, TRUE, dbms_lob.call);
907:
908: -- Clear out the output CLOB buffer
909: dbms_lob.trim(p_clob, 0);
910:
905: -- temp clob lives for at most the duration of call.
906: dbms_lob.createtemporary(l_temp_clob, TRUE, dbms_lob.call);
907:
908: -- Clear out the output CLOB buffer
909: dbms_lob.trim(p_clob, 0);
910:
911: -- Write out the solution text content
912: Write_Soln_Header_Cont_Hlp( p_solution_id, p_lang, p_clob, l_temp_clob );
913: Write_Soln_Statement_Cont_Hlp( p_solution_id, p_lang, p_clob, l_temp_clob );
937: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'cs.plsql.cskbdstb.pls',
938: 'After Write_Soln_Attach_Sect_Hlp- ');
939: END IF;
940: -- explicitly free the clob
941: dbms_lob.freetemporary(l_temp_clob);
942: END Synthesize_Sol_Attach_Content;
943: --End 12.1.3
944:
945: -- procedure Synthesize_Statement_Content
950: -- l_temp_clob CLOB;
951: -- begin
952: --
953: -- -- temp clob lives for at most the duration of call.
954: -- dbms_lob.createtemporary(l_temp_clob, TRUE, dbms_lob.call);
955: --
956: -- -- Clear out the output CLOB buffer
957: -- dbms_lob.trim(p_clob, 0);
958: --
953: -- -- temp clob lives for at most the duration of call.
954: -- dbms_lob.createtemporary(l_temp_clob, TRUE, dbms_lob.call);
955: --
956: -- -- Clear out the output CLOB buffer
957: -- dbms_lob.trim(p_clob, 0);
958: --
959: -- -- Write out the statement text content
960: -- Write_Stmt_Header_Cont_Hlp(p_statement_id, p_lang, p_clob, l_temp_clob);
961: --
962: -- -- Write out metadata sections
963: -- Write_Stmt_Header_Sect_Hlp(p_statement_id, p_lang, p_clob);
964: --
965: -- -- explicitly free the clob
966: -- dbms_lob.freetemporary(l_temp_clob);
967: --
968: -- end Synthesize_Statement_Content;
969:
970:
999:
1000: -- write the solution number to clob
1001: l_data := l_newline||l_soln_number;
1002: l_amt := LENGTH(l_data);
1003: dbms_lob.writeappend(p_clob, l_amt, l_data);
1004:
1005: -- write solution title to clob
1006: l_data := ' '||l_soln_title;
1007: l_data := Remove_Tags(l_data); --, p_temp_clob);
1005: -- write solution title to clob
1006: l_data := ' '||l_soln_title;
1007: l_data := Remove_Tags(l_data); --, p_temp_clob);
1008: l_amt := LENGTH(l_data);
1009: dbms_lob.writeappend(p_clob, l_amt, l_data);
1010:
1011: END Write_Soln_Header_Cont_Hlp;
1012:
1013:
1034:
1035: -- write solution type id
1036: l_data := l_newline||'
1037: l_amt := LENGTH(l_data);
1038: dbms_lob.writeappend(p_clob, l_amt, l_data);
1039:
1040: -- write language code
1041: l_data := l_newline||'
1042: l_amt := LENGTH(l_data);
1039:
1040: -- write language code
1041: l_data := l_newline||'
1042: l_amt := LENGTH(l_data);
1043: dbms_lob.writeappend(p_clob, l_amt, l_data);
1044:
1045: -- write solution number
1046: l_data := l_newline||'
1047: l_amt := LENGTH(l_data);
1044:
1045: -- write solution number
1046: l_data := l_newline||'
1047: l_amt := LENGTH(l_data);
1048: dbms_lob.writeappend(p_clob, l_amt, l_data);
1049:
1050: END Write_Soln_Header_Sect_Hlp;
1051:
1052: --Start 12.1.3
1090: l_clob CLOB := NULL;
1091: l_clob_len NUMBER;
1092: p_clob_len NUMBER;
1093: src_blob BLOB := null;
1094: amount INTEGER := dbms_lob.lobmaxsize;
1095: dest_offset INTEGER :=1;
1096: -- src_offset INTEGER :=1;
1097: blob_csid NUMBER := dbms_lob.default_csid;
1098: lang_context INTEGER := dbms_lob.default_lang_ctx;
1093: src_blob BLOB := null;
1094: amount INTEGER := dbms_lob.lobmaxsize;
1095: dest_offset INTEGER :=1;
1096: -- src_offset INTEGER :=1;
1097: blob_csid NUMBER := dbms_lob.default_csid;
1098: lang_context INTEGER := dbms_lob.default_lang_ctx;
1099: warning INTEGER;
1100: -- blob_length INTEGER;
1101: l_newline VARCHAR2(4) := fnd_global.newline;
1094: amount INTEGER := dbms_lob.lobmaxsize;
1095: dest_offset INTEGER :=1;
1096: -- src_offset INTEGER :=1;
1097: blob_csid NUMBER := dbms_lob.default_csid;
1098: lang_context INTEGER := dbms_lob.default_lang_ctx;
1099: warning INTEGER;
1100: -- blob_length INTEGER;
1101: l_newline VARCHAR2(4) := fnd_global.newline;
1102:
1103: BEGIN
1104: -- For each Statement linked to the solution header,
1105: -- write all of the Statement content (summary, description)
1106: -- into the clob.
1107: dbms_lob.createtemporary(l_clob, TRUE, dbms_lob.call);
1108:
1109: -- Clear out the output CLOB buffer
1110: dbms_lob.trim(l_clob, 0);
1111:
1106: -- into the clob.
1107: dbms_lob.createtemporary(l_clob, TRUE, dbms_lob.call);
1108:
1109: -- Clear out the output CLOB buffer
1110: dbms_lob.trim(l_clob, 0);
1111:
1112:
1113: IF FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL THEN
1114: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'cs.plsql.cskbdstb.pls',
1125: l_data := Remove_Tags(l_data); --, p_temp_clob);
1126: l_amt := LENGTH(l_data);
1127:
1128: IF(l_amt>0) THEN
1129: dbms_lob.writeappend(p_clob, l_amt, l_data);
1130: END IF;
1131:
1132: -- Write the statement description to clob
1133: /* commented for the bug fix 11739796
1130: END IF;
1131:
1132: -- Write the statement description to clob
1133: /* commented for the bug fix 11739796
1134: blob_length := DBMS_LOB.GETLENGTH(rec1.file_data); --Bug 8815880
1135: If blob_length is not null then
1136: src_blob := rec1.file_data;
1137: IF FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL THEN
1138: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'cs.plsql.cskbdstb.pls',
1135: If blob_length is not null then
1136: src_blob := rec1.file_data;
1137: IF FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL THEN
1138: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'cs.plsql.cskbdstb.pls',
1139: 'Before dbms_lob.converttoclob- src_blob : || src_blob');
1140: END IF;
1141: dbms_lob.converttoclob(l_clob ,src_blob, amount, dest_offset, src_offset, blob_csid,lang_context, warning);
1142: IF FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL THEN
1143: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'cs.plsql.cskbdstb.pls',
1137: IF FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL THEN
1138: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'cs.plsql.cskbdstb.pls',
1139: 'Before dbms_lob.converttoclob- src_blob : || src_blob');
1140: END IF;
1141: dbms_lob.converttoclob(l_clob ,src_blob, amount, dest_offset, src_offset, blob_csid,lang_context, warning);
1142: IF FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL THEN
1143: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'cs.plsql.cskbdstb.pls',
1144: 'After dbms_lob.converttoclob- l_clob : || l_clob' );
1145: END IF;
1140: END IF;
1141: dbms_lob.converttoclob(l_clob ,src_blob, amount, dest_offset, src_offset, blob_csid,lang_context, warning);
1142: IF FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL THEN
1143: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'cs.plsql.cskbdstb.pls',
1144: 'After dbms_lob.converttoclob- l_clob : || l_clob' );
1145: END IF;
1146:
1147: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
1148: THEN
1143: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'cs.plsql.cskbdstb.pls',
1144: 'After dbms_lob.converttoclob- l_clob : || l_clob' );
1145: END IF;
1146:
1147: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
1148: THEN
1149: l_clob := Remove_Tags_Clob(l_clob, p_temp_clob);
1150: l_clob_len := dbms_lob.getlength(l_clob);
1151: p_clob_len := dbms_lob.getlength(p_clob);
1146:
1147: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
1148: THEN
1149: l_clob := Remove_Tags_Clob(l_clob, p_temp_clob);
1150: l_clob_len := dbms_lob.getlength(l_clob);
1151: p_clob_len := dbms_lob.getlength(p_clob);
1152: dbms_lob.copy(p_clob, l_clob, l_clob_len, p_clob_len+1, 1);
1153: END IF;
1154: dbms_lob.trim(l_clob, 0);
1147: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
1148: THEN
1149: l_clob := Remove_Tags_Clob(l_clob, p_temp_clob);
1150: l_clob_len := dbms_lob.getlength(l_clob);
1151: p_clob_len := dbms_lob.getlength(p_clob);
1152: dbms_lob.copy(p_clob, l_clob, l_clob_len, p_clob_len+1, 1);
1153: END IF;
1154: dbms_lob.trim(l_clob, 0);
1155: src_offset := 1;
1148: THEN
1149: l_clob := Remove_Tags_Clob(l_clob, p_temp_clob);
1150: l_clob_len := dbms_lob.getlength(l_clob);
1151: p_clob_len := dbms_lob.getlength(p_clob);
1152: dbms_lob.copy(p_clob, l_clob, l_clob_len, p_clob_len+1, 1);
1153: END IF;
1154: dbms_lob.trim(l_clob, 0);
1155: src_offset := 1;
1156: End If;*/
1150: l_clob_len := dbms_lob.getlength(l_clob);
1151: p_clob_len := dbms_lob.getlength(p_clob);
1152: dbms_lob.copy(p_clob, l_clob, l_clob_len, p_clob_len+1, 1);
1153: END IF;
1154: dbms_lob.trim(l_clob, 0);
1155: src_offset := 1;
1156: End If;*/
1157: END LOOP;
1158: END Write_Soln_Attach_Cont_Hlp;
1182: BEGIN
1183: -- Write out statement Section to statements section
1184: l_data := l_newline||'
1185: l_amt := LENGTH(l_data);
1186: dbms_lob.writeappend(p_clob, l_amt, l_data);
1187:
1188: l_data := '';
1189: l_amt := 0;
1190: FOR rec1 IN c1(p_solution_id) LOOP
1193:
1194: l_amt := LENGTH(l_data);
1195: IF ( l_amt > 0 )
1196: THEN
1197: dbms_lob.writeappend(p_clob, l_amt, l_data);
1198: END IF;
1199:
1200: l_data := '';
1201: l_amt := LENGTH(l_data);
1198: END IF;
1199:
1200: l_data := '';
1201: l_amt := LENGTH(l_data);
1202: dbms_lob.writeappend(p_clob, l_amt, l_data);
1203: END Write_Soln_Attach_Sect_Hlp;
1204:
1205: --End 12.1.3
1206:
1227: -- write category section
1228:
1229: l_data := l_newline||'
1230: l_amt := LENGTH(l_data);
1231: dbms_lob.writeappend(p_clob, l_amt, l_data);
1232:
1233: l_data := '';
1234: l_amt := 0;
1235:
1240:
1241: l_amt := LENGTH(l_data);
1242: IF ( l_amt > 0 )
1243: THEN
1244: dbms_lob.writeappend(p_clob, l_amt, l_data);
1245: END IF;
1246:
1247: l_data := '';
1248: l_amt := LENGTH(l_data);
1245: END IF;
1246:
1247: l_data := '';
1248: l_amt := LENGTH(l_data);
1249: dbms_lob.writeappend(p_clob, l_amt, l_data);
1250: END Write_Soln_Category_Sect_Hlp;
1251:
1252:
1253:
1282:
1283: l_amt := LENGTH(l_data);
1284: IF ( l_amt > 0 )
1285: THEN
1286: dbms_lob.writeappend(p_clob, l_amt, l_data);
1287: END IF;
1288:
1289: END Write_Soln_Product_Cont_Hlp;
1290:
1308: -- write the start product section info
1309:
1310: l_data := l_newline||'
1311: l_amt := LENGTH(l_data);
1312: dbms_lob.writeappend(p_clob, l_amt, l_data);
1313:
1314: l_data := '';
1315: l_amt := 0;
1316: FOR rec3 IN c3(p_solution_id) LOOP
1322:
1323: l_amt := LENGTH(l_data);
1324: IF ( l_amt > 0 )
1325: THEN
1326: dbms_lob.writeappend(p_clob, l_amt, l_data);
1327: ELSE
1328: l_data := 'a000a';
1329: dbms_lob.writeappend(p_clob, 5, l_data);
1330: END IF;
1325: THEN
1326: dbms_lob.writeappend(p_clob, l_amt, l_data);
1327: ELSE
1328: l_data := 'a000a';
1329: dbms_lob.writeappend(p_clob, 5, l_data);
1330: END IF;
1331:
1332: l_data := '';
1333: l_amt := LENGTH(l_data);
1330: END IF;
1331:
1332: l_data := '';
1333: l_amt := LENGTH(l_data);
1334: dbms_lob.writeappend(p_clob, l_amt, l_data);
1335: END Write_Soln_Product_Sect_Hlp;
1336:
1337:
1338:
1366:
1367: l_amt := LENGTH(l_data);
1368: IF ( l_amt > 0 )
1369: THEN
1370: dbms_lob.writeappend(p_clob, l_amt, l_data);
1371: END IF;
1372: END Write_Soln_Platform_Cont_Hlp;
1373:
1374:
1390: -- write the start platform section info
1391:
1392: l_data := l_newline||'
1393: l_amt := LENGTH(l_data);
1394: dbms_lob.writeappend(p_clob, l_amt, l_data);
1395:
1396: l_data := '';
1397: l_amt := 0;
1398:
1405:
1406: l_amt := LENGTH(l_data);
1407: IF ( l_amt > 0 )
1408: THEN
1409: dbms_lob.writeappend(p_clob, l_amt, l_data);
1410: ELSE
1411: l_data := 'a000a';
1412: dbms_lob.writeappend(p_clob, 5, l_data);
1413: END IF;
1408: THEN
1409: dbms_lob.writeappend(p_clob, l_amt, l_data);
1410: ELSE
1411: l_data := 'a000a';
1412: dbms_lob.writeappend(p_clob, 5, l_data);
1413: END IF;
1414:
1415: l_data := '';
1416: l_amt := LENGTH(l_data);
1413: END IF;
1414:
1415: l_data := '';
1416: l_amt := LENGTH(l_data);
1417: dbms_lob.writeappend(p_clob, l_amt, l_data);
1418: END Write_Soln_Platform_Sect_Hlp;
1419:
1420:
1421: PROCEDURE Write_Soln_CatGrp_Sect_Hlp
1446: -- write the start category group section info
1447:
1448: l_data := l_newline||'
1449: l_amt := LENGTH(l_data);
1450: dbms_lob.writeappend(p_clob, l_amt, l_data);
1451:
1452: l_data := '';
1453: l_amt := 0;
1454:
1479:
1480: l_amt := LENGTH(l_data);
1481: IF ( l_amt > 0 )
1482: THEN
1483: dbms_lob.writeappend(p_clob, l_amt, l_data);
1484: END IF;
1485:
1486: l_data := '';
1487: l_amt := LENGTH(l_data);
1484: END IF;
1485:
1486: l_data := '';
1487: l_amt := LENGTH(l_data);
1488: dbms_lob.writeappend(p_clob, l_amt, l_data);
1489: END Write_Soln_CatGrp_Sect_Hlp;
1490:
1491:
1492: PROCEDURE Write_Soln_Statement_Cont_Hlp
1523: l_data := Remove_Tags(l_data); --, p_temp_clob);
1524: l_amt := LENGTH(l_data);
1525:
1526: IF(l_amt>0) THEN
1527: dbms_lob.writeappend(p_clob, l_amt, l_data);
1528: END IF;
1529:
1530: -- Write the statement description to clob
1531: l_clob := rec1.description;
1529:
1530: -- Write the statement description to clob
1531: l_clob := rec1.description;
1532:
1533: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
1534: THEN
1535: l_clob := Remove_Tags_Clob(l_clob, p_temp_clob);
1536: l_clob_len := dbms_lob.getlength(l_clob);
1537: p_clob_len := dbms_lob.getlength(p_clob);
1532:
1533: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
1534: THEN
1535: l_clob := Remove_Tags_Clob(l_clob, p_temp_clob);
1536: l_clob_len := dbms_lob.getlength(l_clob);
1537: p_clob_len := dbms_lob.getlength(p_clob);
1538: dbms_lob.copy(p_clob, l_clob, l_clob_len, p_clob_len+1, 1);
1539: END IF;
1540: END LOOP;
1533: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
1534: THEN
1535: l_clob := Remove_Tags_Clob(l_clob, p_temp_clob);
1536: l_clob_len := dbms_lob.getlength(l_clob);
1537: p_clob_len := dbms_lob.getlength(p_clob);
1538: dbms_lob.copy(p_clob, l_clob, l_clob_len, p_clob_len+1, 1);
1539: END IF;
1540: END LOOP;
1541: END Write_Soln_Statement_Cont_Hlp;
1534: THEN
1535: l_clob := Remove_Tags_Clob(l_clob, p_temp_clob);
1536: l_clob_len := dbms_lob.getlength(l_clob);
1537: p_clob_len := dbms_lob.getlength(p_clob);
1538: dbms_lob.copy(p_clob, l_clob, l_clob_len, p_clob_len+1, 1);
1539: END IF;
1540: END LOOP;
1541: END Write_Soln_Statement_Cont_Hlp;
1542:
1565: BEGIN
1566: -- Write out statement Section to statements section
1567: l_data := l_newline||'
1568: l_amt := LENGTH(l_data);
1569: dbms_lob.writeappend(p_clob, l_amt, l_data);
1570:
1571: l_data := '';
1572: l_amt := 0;
1573: FOR rec1 IN c1(p_solution_id) LOOP
1578:
1579: l_amt := LENGTH(l_data);
1580: IF ( l_amt > 0 )
1581: THEN
1582: dbms_lob.writeappend(p_clob, l_amt, l_data);
1583: END IF;
1584:
1585: l_data := '';
1586: l_amt := LENGTH(l_data);
1583: END IF;
1584:
1585: l_data := '';
1586: l_amt := LENGTH(l_data);
1587: dbms_lob.writeappend(p_clob, l_amt, l_data);
1588: END Write_Soln_Statement_Sect_Hlp;
1589:
1590: PROCEDURE Write_Stmt_Header_Cont_Hlp
1591: ( p_statement_id IN NUMBER,
1623: -- Write the statement number and summary to clob
1624: l_data := l_newline||p_statement_number||' '||p_name||l_newline;
1625: l_data := Remove_Tags(l_data); --, p_temp_clob);
1626: l_amt := LENGTH(l_data);
1627: dbms_lob.writeappend(p_clob, l_amt, l_data);
1628:
1629: -- write statement description into clob
1630: l_description := p_description;
1631: IF (l_description IS NOT NULL AND dbms_lob.getlength(l_description) > 0)
1627: dbms_lob.writeappend(p_clob, l_amt, l_data);
1628:
1629: -- write statement description into clob
1630: l_description := p_description;
1631: IF (l_description IS NOT NULL AND dbms_lob.getlength(l_description) > 0)
1632: THEN
1633: l_description := Remove_Tags_Clob(l_description, p_temp_clob);
1634: l_clob_len := dbms_lob.getlength(l_description);
1635: p_clob_len := dbms_lob.getlength(p_clob);
1630: l_description := p_description;
1631: IF (l_description IS NOT NULL AND dbms_lob.getlength(l_description) > 0)
1632: THEN
1633: l_description := Remove_Tags_Clob(l_description, p_temp_clob);
1634: l_clob_len := dbms_lob.getlength(l_description);
1635: p_clob_len := dbms_lob.getlength(p_clob);
1636: dbms_lob.copy(p_clob, l_description, l_clob_len, p_clob_len+1, 1);
1637: END IF;
1638: END Write_Stmt_Header_Cont_Hlp;
1631: IF (l_description IS NOT NULL AND dbms_lob.getlength(l_description) > 0)
1632: THEN
1633: l_description := Remove_Tags_Clob(l_description, p_temp_clob);
1634: l_clob_len := dbms_lob.getlength(l_description);
1635: p_clob_len := dbms_lob.getlength(p_clob);
1636: dbms_lob.copy(p_clob, l_description, l_clob_len, p_clob_len+1, 1);
1637: END IF;
1638: END Write_Stmt_Header_Cont_Hlp;
1639:
1632: THEN
1633: l_description := Remove_Tags_Clob(l_description, p_temp_clob);
1634: l_clob_len := dbms_lob.getlength(l_description);
1635: p_clob_len := dbms_lob.getlength(p_clob);
1636: dbms_lob.copy(p_clob, l_description, l_clob_len, p_clob_len+1, 1);
1637: END IF;
1638: END Write_Stmt_Header_Cont_Hlp;
1639:
1640:
1695:
1696:
1697: l_amt := LENGTH(l_data);
1698: IF(l_amt>0) THEN
1699: dbms_lob.writeappend(p_clob, l_amt, l_data);
1700: END IF;
1701: END Write_Stmt_Header_Sect_Hlp;
1702:
1703: PROCEDURE Write_Stmt_CatGrp_Sect_Hlp
1779: -- write the start category group section info
1780:
1781: l_data := l_newline||'
1782: l_amt := LENGTH(l_data);
1783: dbms_lob.writeappend(p_clob, l_amt, l_data);
1784:
1785: l_data := '';
1786: l_amt := 0;
1787:
1845:
1846: l_amt := LENGTH(l_data);
1847: IF ( l_amt > 0 )
1848: THEN
1849: dbms_lob.writeappend(p_clob, l_amt, l_data);
1850: END IF;
1851:
1852: l_data := '';
1853: l_amt := LENGTH(l_data);
1850: END IF;
1851:
1852: l_data := '';
1853: l_amt := LENGTH(l_data);
1854: dbms_lob.writeappend(p_clob, l_amt, l_data);
1855: END Write_Stmt_CatGrp_Sect_Hlp;
1856:
1857: /*
1858: Remove_Tags:
1886: BEGIN
1887: --can't use, 8.1.7 does not support CLOB replace
1888: --p_clob := replace(p_clob, '<', '!');
1889:
1890: l_idx := dbms_lob.INSTR(p_clob, '<', 1);
1891: IF(l_idx IS NOT NULL AND l_idx > 0) THEN
1892: -- '<' found, so need to copy original into temp clob
1893: -- Clear out the temp clob buffer
1894: dbms_lob.trim(p_temp_clob, 0);
1890: l_idx := dbms_lob.INSTR(p_clob, '<', 1);
1891: IF(l_idx IS NOT NULL AND l_idx > 0) THEN
1892: -- '<' found, so need to copy original into temp clob
1893: -- Clear out the temp clob buffer
1894: dbms_lob.trim(p_temp_clob, 0);
1895: -- Copy original data into temporary clob
1896: l_len := dbms_lob.getlength(p_clob);
1897: dbms_lob.copy(p_temp_clob, p_clob, l_len, 1, 1);
1898: ELSE
1892: -- '<' found, so need to copy original into temp clob
1893: -- Clear out the temp clob buffer
1894: dbms_lob.trim(p_temp_clob, 0);
1895: -- Copy original data into temporary clob
1896: l_len := dbms_lob.getlength(p_clob);
1897: dbms_lob.copy(p_temp_clob, p_clob, l_len, 1, 1);
1898: ELSE
1899: -- no '<' found, so just return the original
1900: RETURN p_clob;
1893: -- Clear out the temp clob buffer
1894: dbms_lob.trim(p_temp_clob, 0);
1895: -- Copy original data into temporary clob
1896: l_len := dbms_lob.getlength(p_clob);
1897: dbms_lob.copy(p_temp_clob, p_clob, l_len, 1, 1);
1898: ELSE
1899: -- no '<' found, so just return the original
1900: RETURN p_clob;
1901: END IF;
1907: --Now replace all '<' with '!' in p_temp_clob
1908: --and return p_temp_clob
1909:
1910: WHILE(l_idx IS NOT NULL AND l_idx > 0) LOOP
1911: dbms_lob.WRITE(p_temp_clob, 1, l_idx, '!');
1912: l_idx := dbms_lob.INSTR(p_temp_clob, '<', l_idx);
1913: END LOOP;
1914:
1915: RETURN p_temp_clob;
1908: --and return p_temp_clob
1909:
1910: WHILE(l_idx IS NOT NULL AND l_idx > 0) LOOP
1911: dbms_lob.WRITE(p_temp_clob, 1, l_idx, '!');
1912: l_idx := dbms_lob.INSTR(p_temp_clob, '<', l_idx);
1913: END LOOP;
1914:
1915: RETURN p_temp_clob;
1916:
1954: BEGIN
1955:
1956: l_data := l_newline||'
1957: l_amt := LENGTH(l_data);
1958: dbms_lob.writeappend(p_clob, l_amt, l_data);
1959: l_data := '';
1960:
1961: OPEN get_all_stmts(p_statement_id);
1962: LOOP
1975: -- of the time it uses only up to 7 digits.
1976: IF l_cnt >= 2000 THEN
1977: l_cnt := 0;
1978: l_amt := LENGTH(l_data);
1979: dbms_lob.writeappend(p_clob, l_amt, l_data);
1980: l_data := '';
1981: END IF;
1982: END LOOP;
1983:
2002: -- of the time it uses only up to 7 digits.
2003: IF l_cnt >= 2000 THEN
2004: l_cnt := 0;
2005: l_amt := LENGTH(l_data);
2006: dbms_lob.writeappend(p_clob, l_amt, l_data);
2007: l_data := '';
2008: END IF;
2009: END LOOP;
2010: END IF;
2010: END IF;
2011:
2012: l_data := l_data||'';
2013: l_amt := LENGTH(l_data);
2014: dbms_lob.writeappend(p_clob, l_amt, l_data);
2015: END Write_Related_Stmt_Sect_Hlp;
2016:
2017:
2018: END cs_kb_ctx_pkg;