154: IF ( l_status = 'PUB' )
155: THEN
156: -- If the solution content cache is populated, then use it
157: -- for the indexed content.
158: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
159: THEN
160: -- Clear out the output CLOB buffer
161: dbms_lob.trim(p_clob, 0);
162:
157: -- for the indexed content.
158: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
159: THEN
160: -- Clear out the output CLOB buffer
161: dbms_lob.trim(p_clob, 0);
162:
163: -- Copy content cache into output CLOB buffer for indexing
164: l_clob_len := dbms_lob.getlength(l_clob);
165: dbms_lob.copy(p_clob, l_clob, l_clob_len, 1, 1);
160: -- Clear out the output CLOB buffer
161: dbms_lob.trim(p_clob, 0);
162:
163: -- Copy content cache into output CLOB buffer for indexing
164: l_clob_len := dbms_lob.getlength(l_clob);
165: dbms_lob.copy(p_clob, l_clob, l_clob_len, 1, 1);
166: ELSE
167: -- Call procedure to return synthesized solution content
168: -- for indexing. CLOB is passed by reference and sub
161: dbms_lob.trim(p_clob, 0);
162:
163: -- Copy content cache into output CLOB buffer for indexing
164: l_clob_len := dbms_lob.getlength(l_clob);
165: dbms_lob.copy(p_clob, l_clob, l_clob_len, 1, 1);
166: ELSE
167: -- Call procedure to return synthesized solution content
168: -- for indexing. CLOB is passed by reference and sub
169: -- procedures will change the CLOB directly.
259: l_stmt_name VARCHAR2(32000) := '';
260: empty_flag BOOLEAN := TRUE;
261: BEGIN
262: -- temp clob lives for at most the duration of call.
263: dbms_lob.createtemporary(l_temp_clob, TRUE, dbms_lob.call);
264:
265: DBMS_LOB.OPEN(l_temp_clob,DBMS_LOB.LOB_READWRITE);
266:
267: -- Clear out the output CLOB buffer
261: BEGIN
262: -- temp clob lives for at most the duration of call.
263: dbms_lob.createtemporary(l_temp_clob, TRUE, dbms_lob.call);
264:
265: DBMS_LOB.OPEN(l_temp_clob,DBMS_LOB.LOB_READWRITE);
266:
267: -- Clear out the output CLOB buffer
268: dbms_lob.trim(p_clob, 0);
269:
264:
265: DBMS_LOB.OPEN(l_temp_clob,DBMS_LOB.LOB_READWRITE);
266:
267: -- Clear out the output CLOB buffer
268: dbms_lob.trim(p_clob, 0);
269:
270: -- write the solution number to clob
271: l_data := l_newline||p_soln_number;
272:
278: l_data := l_data||' '||l_soln_title||l_newline;
279: l_data := Remove_Tags(l_data);
280: l_amt := LENGTH(l_data);
281:
282: dbms_lob.writeappend(p_clob, l_amt, l_data);
283:
284: -- Construct the header sections
285: -- write solution type id
286: l_sections := l_newline||'
306: l_amt := LENGTH(l_stmt_name);
307: IF l_amt >= 31000 THEN
308: -- flush l_stmt_name to the p_clob
309: l_stmt_name := Remove_Tags(l_stmt_name);
310: dbms_lob.writeappend(p_clob, l_amt, l_stmt_name);
311: l_stmt_name := l_newline;
312: END IF;
313:
314: -- Write the statement description to clob
312: END IF;
313:
314: -- Write the statement description to clob
315: l_clob := rec1.description;
316: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
317: THEN
318: l_clob := Remove_Tags_Clob(l_clob, l_temp_clob);
319: l_clob_len := dbms_lob.getlength(l_clob);
320: p_clob_len := dbms_lob.getlength(p_clob);
315: l_clob := rec1.description;
316: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
317: THEN
318: l_clob := Remove_Tags_Clob(l_clob, l_temp_clob);
319: l_clob_len := dbms_lob.getlength(l_clob);
320: p_clob_len := dbms_lob.getlength(p_clob);
321: dbms_lob.copy(p_clob, l_clob, l_clob_len, p_clob_len+1, 1);
322: END IF;
323:
316: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
317: THEN
318: l_clob := Remove_Tags_Clob(l_clob, l_temp_clob);
319: l_clob_len := dbms_lob.getlength(l_clob);
320: p_clob_len := dbms_lob.getlength(p_clob);
321: dbms_lob.copy(p_clob, l_clob, l_clob_len, p_clob_len+1, 1);
322: END IF;
323:
324: -- Repeat each statement id for 10 times.
317: THEN
318: l_clob := Remove_Tags_Clob(l_clob, l_temp_clob);
319: l_clob_len := dbms_lob.getlength(l_clob);
320: p_clob_len := dbms_lob.getlength(p_clob);
321: dbms_lob.copy(p_clob, l_clob, l_clob_len, p_clob_len+1, 1);
322: END IF;
323:
324: -- Repeat each statement id for 10 times.
325: -- Need revisit in 115.x. See issue #1309
330:
331: l_amt := LENGTH(l_stmt_name);
332: IF l_amt > 0 THEN
333: l_stmt_name := Remove_Tags(l_stmt_name);
334: dbms_lob.writeappend(p_clob, l_amt, l_stmt_name);
335: END IF;
336:
337: l_sections := l_sections || '';
338:
385:
386: l_amt := LENGTH(l_data);
387: IF ( l_amt > 0 )
388: THEN
389: dbms_lob.writeappend(p_clob, l_amt, l_data);
390: END IF;
391:
392: l_amt := LENGTH(l_sections);
393: IF ( l_amt > 0 )
391:
392: l_amt := LENGTH(l_sections);
393: IF ( l_amt > 0 )
394: THEN
395: dbms_lob.writeappend(p_clob, l_amt, l_sections);
396: END IF;
397:
398: DBMS_LOB.CLOSE(l_temp_clob);
399: dbms_lob.freetemporary(l_temp_clob);
394: THEN
395: dbms_lob.writeappend(p_clob, l_amt, l_sections);
396: END IF;
397:
398: DBMS_LOB.CLOSE(l_temp_clob);
399: dbms_lob.freetemporary(l_temp_clob);
400:
401: END Single_Synthesize_Set_Content;
402: -- end (perf11510)
395: dbms_lob.writeappend(p_clob, l_amt, l_sections);
396: END IF;
397:
398: DBMS_LOB.CLOSE(l_temp_clob);
399: dbms_lob.freetemporary(l_temp_clob);
400:
401: END Single_Synthesize_Set_Content;
402: -- end (perf11510)
403:
445: -- Bug 3455203 - Perf Changes:
446: -- Consolidated code from Synthesize_Statement_Content to here:
447:
448: -- temp clob lives for at most the duration of call.
449: dbms_lob.createtemporary(l_temp_clob, TRUE, dbms_lob.call);
450: -- Clear out the output CLOB buffer
451: dbms_lob.trim(p_clob, 0);
452:
453: -- Write out the statement text content
447:
448: -- temp clob lives for at most the duration of call.
449: dbms_lob.createtemporary(l_temp_clob, TRUE, dbms_lob.call);
450: -- Clear out the output CLOB buffer
451: dbms_lob.trim(p_clob, 0);
452:
453: -- Write out the statement text content
454: Write_Stmt_Header_Cont_Hlp(l_statement_id, l_lang, p_clob, l_temp_clob,
455: l_statement_number, l_name, l_description);
456: -- Write out metadata sections
457: Write_Stmt_Header_Sect_Hlp(l_statement_id, l_lang, p_clob,
458: l_statement_number, l_type_id, l_access_level);
459: -- explicitly free the clob
460: dbms_lob.freetemporary(l_temp_clob);
461: --
462:
463: -- Append the statement security information into the index
464: -- at index time.
480:
481: BEGIN
482:
483: -- temp clob lives for at most the duration of call.
484: dbms_lob.createtemporary(l_temp_clob, TRUE, dbms_lob.call);
485:
486: -- Clear out the output CLOB buffer
487: dbms_lob.trim(p_clob, 0);
488:
483: -- temp clob lives for at most the duration of call.
484: dbms_lob.createtemporary(l_temp_clob, TRUE, dbms_lob.call);
485:
486: -- Clear out the output CLOB buffer
487: dbms_lob.trim(p_clob, 0);
488:
489: -- Write out the solution text content
490: Write_Soln_Header_Cont_Hlp( p_solution_id, p_lang, p_clob, l_temp_clob );
491: Write_Soln_Statement_Cont_Hlp( p_solution_id, p_lang, p_clob, l_temp_clob );
499: Write_Soln_Product_Sect_Hlp( p_solution_id, p_clob );
500: Write_Soln_Platform_Sect_Hlp( p_solution_id, p_clob );
501:
502: -- explicitly free the clob
503: dbms_lob.freetemporary(l_temp_clob);
504: END Synthesize_Solution_Content;
505:
506: -- procedure Synthesize_Statement_Content
507: -- ( p_statement_id IN NUMBER,
511: -- l_temp_clob CLOB;
512: -- begin
513: --
514: -- -- temp clob lives for at most the duration of call.
515: -- dbms_lob.createtemporary(l_temp_clob, TRUE, dbms_lob.call);
516: --
517: -- -- Clear out the output CLOB buffer
518: -- dbms_lob.trim(p_clob, 0);
519: --
514: -- -- temp clob lives for at most the duration of call.
515: -- dbms_lob.createtemporary(l_temp_clob, TRUE, dbms_lob.call);
516: --
517: -- -- Clear out the output CLOB buffer
518: -- dbms_lob.trim(p_clob, 0);
519: --
520: -- -- Write out the statement text content
521: -- Write_Stmt_Header_Cont_Hlp(p_statement_id, p_lang, p_clob, l_temp_clob);
522: --
523: -- -- Write out metadata sections
524: -- Write_Stmt_Header_Sect_Hlp(p_statement_id, p_lang, p_clob);
525: --
526: -- -- explicitly free the clob
527: -- dbms_lob.freetemporary(l_temp_clob);
528: --
529: -- end Synthesize_Statement_Content;
530:
531:
560:
561: -- write the solution number to clob
562: l_data := l_newline||l_soln_number;
563: l_amt := LENGTH(l_data);
564: dbms_lob.writeappend(p_clob, l_amt, l_data);
565:
566: -- write solution title to clob
567: l_data := ' '||l_soln_title;
568: l_data := Remove_Tags(l_data); --, p_temp_clob);
566: -- write solution title to clob
567: l_data := ' '||l_soln_title;
568: l_data := Remove_Tags(l_data); --, p_temp_clob);
569: l_amt := LENGTH(l_data);
570: dbms_lob.writeappend(p_clob, l_amt, l_data);
571:
572: END Write_Soln_Header_Cont_Hlp;
573:
574:
595:
596: -- write solution type id
597: l_data := l_newline||'
598: l_amt := LENGTH(l_data);
599: dbms_lob.writeappend(p_clob, l_amt, l_data);
600:
601: -- write language code
602: l_data := l_newline||'
603: l_amt := LENGTH(l_data);
600:
601: -- write language code
602: l_data := l_newline||'
603: l_amt := LENGTH(l_data);
604: dbms_lob.writeappend(p_clob, l_amt, l_data);
605:
606: -- write solution number
607: l_data := l_newline||'
608: l_amt := LENGTH(l_data);
605:
606: -- write solution number
607: l_data := l_newline||'
608: l_amt := LENGTH(l_data);
609: dbms_lob.writeappend(p_clob, l_amt, l_data);
610:
611: END Write_Soln_Header_Sect_Hlp;
612:
613:
634: -- write category section
635:
636: l_data := l_newline||'
637: l_amt := LENGTH(l_data);
638: dbms_lob.writeappend(p_clob, l_amt, l_data);
639:
640: l_data := '';
641: l_amt := 0;
642:
647:
648: l_amt := LENGTH(l_data);
649: IF ( l_amt > 0 )
650: THEN
651: dbms_lob.writeappend(p_clob, l_amt, l_data);
652: END IF;
653:
654: l_data := '';
655: l_amt := LENGTH(l_data);
652: END IF;
653:
654: l_data := '';
655: l_amt := LENGTH(l_data);
656: dbms_lob.writeappend(p_clob, l_amt, l_data);
657: END Write_Soln_Category_Sect_Hlp;
658:
659:
660:
689:
690: l_amt := LENGTH(l_data);
691: IF ( l_amt > 0 )
692: THEN
693: dbms_lob.writeappend(p_clob, l_amt, l_data);
694: END IF;
695:
696: END Write_Soln_Product_Cont_Hlp;
697:
715: -- write the start product section info
716:
717: l_data := l_newline||'
718: l_amt := LENGTH(l_data);
719: dbms_lob.writeappend(p_clob, l_amt, l_data);
720:
721: l_data := '';
722: l_amt := 0;
723: FOR rec3 IN c3(p_solution_id) LOOP
729:
730: l_amt := LENGTH(l_data);
731: IF ( l_amt > 0 )
732: THEN
733: dbms_lob.writeappend(p_clob, l_amt, l_data);
734: ELSE
735: l_data := 'a000a';
736: dbms_lob.writeappend(p_clob, 5, l_data);
737: END IF;
732: THEN
733: dbms_lob.writeappend(p_clob, l_amt, l_data);
734: ELSE
735: l_data := 'a000a';
736: dbms_lob.writeappend(p_clob, 5, l_data);
737: END IF;
738:
739: l_data := '';
740: l_amt := LENGTH(l_data);
737: END IF;
738:
739: l_data := '';
740: l_amt := LENGTH(l_data);
741: dbms_lob.writeappend(p_clob, l_amt, l_data);
742: END Write_Soln_Product_Sect_Hlp;
743:
744:
745:
773:
774: l_amt := LENGTH(l_data);
775: IF ( l_amt > 0 )
776: THEN
777: dbms_lob.writeappend(p_clob, l_amt, l_data);
778: END IF;
779: END Write_Soln_Platform_Cont_Hlp;
780:
781:
797: -- write the start platform section info
798:
799: l_data := l_newline||'
800: l_amt := LENGTH(l_data);
801: dbms_lob.writeappend(p_clob, l_amt, l_data);
802:
803: l_data := '';
804: l_amt := 0;
805:
812:
813: l_amt := LENGTH(l_data);
814: IF ( l_amt > 0 )
815: THEN
816: dbms_lob.writeappend(p_clob, l_amt, l_data);
817: ELSE
818: l_data := 'a000a';
819: dbms_lob.writeappend(p_clob, 5, l_data);
820: END IF;
815: THEN
816: dbms_lob.writeappend(p_clob, l_amt, l_data);
817: ELSE
818: l_data := 'a000a';
819: dbms_lob.writeappend(p_clob, 5, l_data);
820: END IF;
821:
822: l_data := '';
823: l_amt := LENGTH(l_data);
820: END IF;
821:
822: l_data := '';
823: l_amt := LENGTH(l_data);
824: dbms_lob.writeappend(p_clob, l_amt, l_data);
825: END Write_Soln_Platform_Sect_Hlp;
826:
827:
828: PROCEDURE Write_Soln_CatGrp_Sect_Hlp
853: -- write the start category group section info
854:
855: l_data := l_newline||'
856: l_amt := LENGTH(l_data);
857: dbms_lob.writeappend(p_clob, l_amt, l_data);
858:
859: l_data := '';
860: l_amt := 0;
861:
886:
887: l_amt := LENGTH(l_data);
888: IF ( l_amt > 0 )
889: THEN
890: dbms_lob.writeappend(p_clob, l_amt, l_data);
891: END IF;
892:
893: l_data := '';
894: l_amt := LENGTH(l_data);
891: END IF;
892:
893: l_data := '';
894: l_amt := LENGTH(l_data);
895: dbms_lob.writeappend(p_clob, l_amt, l_data);
896: END Write_Soln_CatGrp_Sect_Hlp;
897:
898:
899: PROCEDURE Write_Soln_Statement_Cont_Hlp
930: l_data := Remove_Tags(l_data); --, p_temp_clob);
931: l_amt := LENGTH(l_data);
932:
933: IF(l_amt>0) THEN
934: dbms_lob.writeappend(p_clob, l_amt, l_data);
935: END IF;
936:
937: -- Write the statement description to clob
938: l_clob := rec1.description;
936:
937: -- Write the statement description to clob
938: l_clob := rec1.description;
939:
940: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
941: THEN
942: l_clob := Remove_Tags_Clob(l_clob, p_temp_clob);
943: l_clob_len := dbms_lob.getlength(l_clob);
944: p_clob_len := dbms_lob.getlength(p_clob);
939:
940: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
941: THEN
942: l_clob := Remove_Tags_Clob(l_clob, p_temp_clob);
943: l_clob_len := dbms_lob.getlength(l_clob);
944: p_clob_len := dbms_lob.getlength(p_clob);
945: dbms_lob.copy(p_clob, l_clob, l_clob_len, p_clob_len+1, 1);
946: END IF;
947: END LOOP;
940: IF (l_clob IS NOT NULL AND dbms_lob.getlength(l_clob) > 0)
941: THEN
942: l_clob := Remove_Tags_Clob(l_clob, p_temp_clob);
943: l_clob_len := dbms_lob.getlength(l_clob);
944: p_clob_len := dbms_lob.getlength(p_clob);
945: dbms_lob.copy(p_clob, l_clob, l_clob_len, p_clob_len+1, 1);
946: END IF;
947: END LOOP;
948: END Write_Soln_Statement_Cont_Hlp;
941: THEN
942: l_clob := Remove_Tags_Clob(l_clob, p_temp_clob);
943: l_clob_len := dbms_lob.getlength(l_clob);
944: p_clob_len := dbms_lob.getlength(p_clob);
945: dbms_lob.copy(p_clob, l_clob, l_clob_len, p_clob_len+1, 1);
946: END IF;
947: END LOOP;
948: END Write_Soln_Statement_Cont_Hlp;
949:
972: BEGIN
973: -- Write out statement Section to statements section
974: l_data := l_newline||'
975: l_amt := LENGTH(l_data);
976: dbms_lob.writeappend(p_clob, l_amt, l_data);
977:
978: l_data := '';
979: l_amt := 0;
980: FOR rec1 IN c1(p_solution_id) LOOP
985:
986: l_amt := LENGTH(l_data);
987: IF ( l_amt > 0 )
988: THEN
989: dbms_lob.writeappend(p_clob, l_amt, l_data);
990: END IF;
991:
992: l_data := '';
993: l_amt := LENGTH(l_data);
990: END IF;
991:
992: l_data := '';
993: l_amt := LENGTH(l_data);
994: dbms_lob.writeappend(p_clob, l_amt, l_data);
995: END Write_Soln_Statement_Sect_Hlp;
996:
997: PROCEDURE Write_Stmt_Header_Cont_Hlp
998: ( p_statement_id IN NUMBER,
1030: -- Write the statement number and summary to clob
1031: l_data := l_newline||p_statement_number||' '||p_name||l_newline;
1032: l_data := Remove_Tags(l_data); --, p_temp_clob);
1033: l_amt := LENGTH(l_data);
1034: dbms_lob.writeappend(p_clob, l_amt, l_data);
1035:
1036: -- write statement description into clob
1037: l_description := p_description;
1038: IF (l_description IS NOT NULL AND dbms_lob.getlength(l_description) > 0)
1034: dbms_lob.writeappend(p_clob, l_amt, l_data);
1035:
1036: -- write statement description into clob
1037: l_description := p_description;
1038: IF (l_description IS NOT NULL AND dbms_lob.getlength(l_description) > 0)
1039: THEN
1040: l_description := Remove_Tags_Clob(l_description, p_temp_clob);
1041: l_clob_len := dbms_lob.getlength(l_description);
1042: p_clob_len := dbms_lob.getlength(p_clob);
1037: l_description := p_description;
1038: IF (l_description IS NOT NULL AND dbms_lob.getlength(l_description) > 0)
1039: THEN
1040: l_description := Remove_Tags_Clob(l_description, p_temp_clob);
1041: l_clob_len := dbms_lob.getlength(l_description);
1042: p_clob_len := dbms_lob.getlength(p_clob);
1043: dbms_lob.copy(p_clob, l_description, l_clob_len, p_clob_len+1, 1);
1044: END IF;
1045: END Write_Stmt_Header_Cont_Hlp;
1038: IF (l_description IS NOT NULL AND dbms_lob.getlength(l_description) > 0)
1039: THEN
1040: l_description := Remove_Tags_Clob(l_description, p_temp_clob);
1041: l_clob_len := dbms_lob.getlength(l_description);
1042: p_clob_len := dbms_lob.getlength(p_clob);
1043: dbms_lob.copy(p_clob, l_description, l_clob_len, p_clob_len+1, 1);
1044: END IF;
1045: END Write_Stmt_Header_Cont_Hlp;
1046:
1039: THEN
1040: l_description := Remove_Tags_Clob(l_description, p_temp_clob);
1041: l_clob_len := dbms_lob.getlength(l_description);
1042: p_clob_len := dbms_lob.getlength(p_clob);
1043: dbms_lob.copy(p_clob, l_description, l_clob_len, p_clob_len+1, 1);
1044: END IF;
1045: END Write_Stmt_Header_Cont_Hlp;
1046:
1047:
1102:
1103:
1104: l_amt := LENGTH(l_data);
1105: IF(l_amt>0) THEN
1106: dbms_lob.writeappend(p_clob, l_amt, l_data);
1107: END IF;
1108: END Write_Stmt_Header_Sect_Hlp;
1109:
1110: PROCEDURE Write_Stmt_CatGrp_Sect_Hlp
1186: -- write the start category group section info
1187:
1188: l_data := l_newline||'
1189: l_amt := LENGTH(l_data);
1190: dbms_lob.writeappend(p_clob, l_amt, l_data);
1191:
1192: l_data := '';
1193: l_amt := 0;
1194:
1252:
1253: l_amt := LENGTH(l_data);
1254: IF ( l_amt > 0 )
1255: THEN
1256: dbms_lob.writeappend(p_clob, l_amt, l_data);
1257: END IF;
1258:
1259: l_data := '';
1260: l_amt := LENGTH(l_data);
1257: END IF;
1258:
1259: l_data := '';
1260: l_amt := LENGTH(l_data);
1261: dbms_lob.writeappend(p_clob, l_amt, l_data);
1262: END Write_Stmt_CatGrp_Sect_Hlp;
1263:
1264: /*
1265: Remove_Tags:
1293: BEGIN
1294: --can't use, 8.1.7 does not support CLOB replace
1295: --p_clob := replace(p_clob, '<', '!');
1296:
1297: l_idx := dbms_lob.INSTR(p_clob, '<', 1);
1298: IF(l_idx IS NOT NULL AND l_idx > 0) THEN
1299: -- '<' found, so need to copy original into temp clob
1300: -- Clear out the temp clob buffer
1301: dbms_lob.trim(p_temp_clob, 0);
1297: l_idx := dbms_lob.INSTR(p_clob, '<', 1);
1298: IF(l_idx IS NOT NULL AND l_idx > 0) THEN
1299: -- '<' found, so need to copy original into temp clob
1300: -- Clear out the temp clob buffer
1301: dbms_lob.trim(p_temp_clob, 0);
1302: -- Copy original data into temporary clob
1303: l_len := dbms_lob.getlength(p_clob);
1304: dbms_lob.copy(p_temp_clob, p_clob, l_len, 1, 1);
1305: ELSE
1299: -- '<' found, so need to copy original into temp clob
1300: -- Clear out the temp clob buffer
1301: dbms_lob.trim(p_temp_clob, 0);
1302: -- Copy original data into temporary clob
1303: l_len := dbms_lob.getlength(p_clob);
1304: dbms_lob.copy(p_temp_clob, p_clob, l_len, 1, 1);
1305: ELSE
1306: -- no '<' found, so just return the original
1307: RETURN p_clob;
1300: -- Clear out the temp clob buffer
1301: dbms_lob.trim(p_temp_clob, 0);
1302: -- Copy original data into temporary clob
1303: l_len := dbms_lob.getlength(p_clob);
1304: dbms_lob.copy(p_temp_clob, p_clob, l_len, 1, 1);
1305: ELSE
1306: -- no '<' found, so just return the original
1307: RETURN p_clob;
1308: END IF;
1314: --Now replace all '<' with '!' in p_temp_clob
1315: --and return p_temp_clob
1316:
1317: WHILE(l_idx IS NOT NULL AND l_idx > 0) LOOP
1318: dbms_lob.WRITE(p_temp_clob, 1, l_idx, '!');
1319: l_idx := dbms_lob.INSTR(p_temp_clob, '<', l_idx);
1320: END LOOP;
1321:
1322: RETURN p_temp_clob;
1315: --and return p_temp_clob
1316:
1317: WHILE(l_idx IS NOT NULL AND l_idx > 0) LOOP
1318: dbms_lob.WRITE(p_temp_clob, 1, l_idx, '!');
1319: l_idx := dbms_lob.INSTR(p_temp_clob, '<', l_idx);
1320: END LOOP;
1321:
1322: RETURN p_temp_clob;
1323:
1361: BEGIN
1362:
1363: l_data := l_newline||'
1364: l_amt := LENGTH(l_data);
1365: dbms_lob.writeappend(p_clob, l_amt, l_data);
1366: l_data := '';
1367:
1368: OPEN get_all_stmts(p_statement_id);
1369: LOOP
1382: -- of the time it uses only up to 7 digits.
1383: IF l_cnt >= 2000 THEN
1384: l_cnt := 0;
1385: l_amt := LENGTH(l_data);
1386: dbms_lob.writeappend(p_clob, l_amt, l_data);
1387: l_data := '';
1388: END IF;
1389: END LOOP;
1390:
1409: -- of the time it uses only up to 7 digits.
1410: IF l_cnt >= 2000 THEN
1411: l_cnt := 0;
1412: l_amt := LENGTH(l_data);
1413: dbms_lob.writeappend(p_clob, l_amt, l_data);
1414: l_data := '';
1415: END IF;
1416: END LOOP;
1417: END IF;
1417: END IF;
1418:
1419: l_data := l_data||'';
1420: l_amt := LENGTH(l_data);
1421: dbms_lob.writeappend(p_clob, l_amt, l_data);
1422: END Write_Related_Stmt_Sect_Hlp;
1423:
1424:
1425: END cs_kb_ctx_pkg;