817: l_str7 := '
818:
819:
820:
821: dbms_lob.createtemporary(l_xfdf_string,FALSE,DBMS_LOB.CALL);
822: dbms_lob.open(l_xfdf_string,dbms_lob.lob_readwrite);
823:
824: IF vXMLTable.count > 0 THEN
825: dbms_lob.writeAppend( l_xfdf_string, length(l_str1), l_str1 );
818:
819:
820:
821: dbms_lob.createtemporary(l_xfdf_string,FALSE,DBMS_LOB.CALL);
822: dbms_lob.open(l_xfdf_string,dbms_lob.lob_readwrite);
823:
824: IF vXMLTable.count > 0 THEN
825: dbms_lob.writeAppend( l_xfdf_string, length(l_str1), l_str1 );
826: FOR ctr_table IN vXMLTable.FIRST .. vXMLTable.LAST LOOP
821: dbms_lob.createtemporary(l_xfdf_string,FALSE,DBMS_LOB.CALL);
822: dbms_lob.open(l_xfdf_string,dbms_lob.lob_readwrite);
823:
824: IF vXMLTable.count > 0 THEN
825: dbms_lob.writeAppend( l_xfdf_string, length(l_str1), l_str1 );
826: FOR ctr_table IN vXMLTable.FIRST .. vXMLTable.LAST LOOP
827: l_str8 := vXMLTable(ctr_table).TagName;
828: l_str9 := vXMLTable(ctr_table).TagValue;
829: --
827: l_str8 := vXMLTable(ctr_table).TagName;
828: l_str9 := vXMLTable(ctr_table).TagValue;
829: --
830: IF (l_str9 is not null) THEN
831: dbms_lob.writeAppend( l_xfdf_string, length(l_str2), l_str2 );
832: dbms_lob.writeAppend( l_xfdf_string, length(l_str8),l_str8);
833: dbms_lob.writeAppend( l_xfdf_string, length(l_str3), l_str3 );
834: dbms_lob.writeAppend( l_xfdf_string, length(l_str4), l_str4 );
835: dbms_lob.writeAppend( l_xfdf_string, length(l_str9), l_str9);
828: l_str9 := vXMLTable(ctr_table).TagValue;
829: --
830: IF (l_str9 is not null) THEN
831: dbms_lob.writeAppend( l_xfdf_string, length(l_str2), l_str2 );
832: dbms_lob.writeAppend( l_xfdf_string, length(l_str8),l_str8);
833: dbms_lob.writeAppend( l_xfdf_string, length(l_str3), l_str3 );
834: dbms_lob.writeAppend( l_xfdf_string, length(l_str4), l_str4 );
835: dbms_lob.writeAppend( l_xfdf_string, length(l_str9), l_str9);
836: dbms_lob.writeAppend( l_xfdf_string, length(l_str5), l_str5 );
829: --
830: IF (l_str9 is not null) THEN
831: dbms_lob.writeAppend( l_xfdf_string, length(l_str2), l_str2 );
832: dbms_lob.writeAppend( l_xfdf_string, length(l_str8),l_str8);
833: dbms_lob.writeAppend( l_xfdf_string, length(l_str3), l_str3 );
834: dbms_lob.writeAppend( l_xfdf_string, length(l_str4), l_str4 );
835: dbms_lob.writeAppend( l_xfdf_string, length(l_str9), l_str9);
836: dbms_lob.writeAppend( l_xfdf_string, length(l_str5), l_str5 );
837: ELSE
830: IF (l_str9 is not null) THEN
831: dbms_lob.writeAppend( l_xfdf_string, length(l_str2), l_str2 );
832: dbms_lob.writeAppend( l_xfdf_string, length(l_str8),l_str8);
833: dbms_lob.writeAppend( l_xfdf_string, length(l_str3), l_str3 );
834: dbms_lob.writeAppend( l_xfdf_string, length(l_str4), l_str4 );
835: dbms_lob.writeAppend( l_xfdf_string, length(l_str9), l_str9);
836: dbms_lob.writeAppend( l_xfdf_string, length(l_str5), l_str5 );
837: ELSE
838: null;
831: dbms_lob.writeAppend( l_xfdf_string, length(l_str2), l_str2 );
832: dbms_lob.writeAppend( l_xfdf_string, length(l_str8),l_str8);
833: dbms_lob.writeAppend( l_xfdf_string, length(l_str3), l_str3 );
834: dbms_lob.writeAppend( l_xfdf_string, length(l_str4), l_str4 );
835: dbms_lob.writeAppend( l_xfdf_string, length(l_str9), l_str9);
836: dbms_lob.writeAppend( l_xfdf_string, length(l_str5), l_str5 );
837: ELSE
838: null;
839: END IF;
832: dbms_lob.writeAppend( l_xfdf_string, length(l_str8),l_str8);
833: dbms_lob.writeAppend( l_xfdf_string, length(l_str3), l_str3 );
834: dbms_lob.writeAppend( l_xfdf_string, length(l_str4), l_str4 );
835: dbms_lob.writeAppend( l_xfdf_string, length(l_str9), l_str9);
836: dbms_lob.writeAppend( l_xfdf_string, length(l_str5), l_str5 );
837: ELSE
838: null;
839: END IF;
840: END LOOP;
837: ELSE
838: null;
839: END IF;
840: END LOOP;
841: dbms_lob.writeAppend( l_xfdf_string, length(l_str6), l_str6 );
842: ELSE
843: dbms_lob.writeAppend( l_xfdf_string, length(l_str7), l_str7 );
844: END IF;
845:
839: END IF;
840: END LOOP;
841: dbms_lob.writeAppend( l_xfdf_string, length(l_str6), l_str6 );
842: ELSE
843: dbms_lob.writeAppend( l_xfdf_string, length(l_str7), l_str7 );
844: END IF;
845:
846: DBMS_LOB.CREATETEMPORARY(p_xfdf_blob,TRUE);
847: clob_to_blob(l_xfdf_string,p_xfdf_blob);
842: ELSE
843: dbms_lob.writeAppend( l_xfdf_string, length(l_str7), l_str7 );
844: END IF;
845:
846: DBMS_LOB.CREATETEMPORARY(p_xfdf_blob,TRUE);
847: clob_to_blob(l_xfdf_string,p_xfdf_blob);
848: --return p_xfdf_blob;
849: EXCEPTION
850: WHEN OTHERS then
875: l_str7 := '
876:
877:
878:
879: dbms_lob.createtemporary(p_xfdf_string,FALSE,DBMS_LOB.CALL);
880: dbms_lob.open(p_xfdf_string,dbms_lob.lob_readwrite);
881: IF vXMLTable.count > 0 THEN
882: dbms_lob.writeAppend( p_xfdf_string, length(l_str1), l_str1 );
883: FOR ctr_table IN vXMLTable.FIRST .. vXMLTable.LAST LOOP
876:
877:
878:
879: dbms_lob.createtemporary(p_xfdf_string,FALSE,DBMS_LOB.CALL);
880: dbms_lob.open(p_xfdf_string,dbms_lob.lob_readwrite);
881: IF vXMLTable.count > 0 THEN
882: dbms_lob.writeAppend( p_xfdf_string, length(l_str1), l_str1 );
883: FOR ctr_table IN vXMLTable.FIRST .. vXMLTable.LAST LOOP
884: l_str8 := vXMLTable(ctr_table).TagName;
878: ';
879: dbms_lob.createtemporary(p_xfdf_string,FALSE,DBMS_LOB.CALL);
880: dbms_lob.open(p_xfdf_string,dbms_lob.lob_readwrite);
881: IF vXMLTable.count > 0 THEN
882: dbms_lob.writeAppend( p_xfdf_string, length(l_str1), l_str1 );
883: FOR ctr_table IN vXMLTable.FIRST .. vXMLTable.LAST LOOP
884: l_str8 := vXMLTable(ctr_table).TagName;
885: l_str9 := vXMLTable(ctr_table).TagValue;
886: --
884: l_str8 := vXMLTable(ctr_table).TagName;
885: l_str9 := vXMLTable(ctr_table).TagValue;
886: --
887: IF (l_str9 is not null) THEN
888: dbms_lob.writeAppend( p_xfdf_string, length(l_str2), l_str2 );
889: dbms_lob.writeAppend( p_xfdf_string, length(l_str8),l_str8);
890: dbms_lob.writeAppend( p_xfdf_string, length(l_str3), l_str3 );
891: dbms_lob.writeAppend( p_xfdf_string, length(l_str4), l_str4 );
892: dbms_lob.writeAppend( p_xfdf_string, length(l_str9), l_str9);
885: l_str9 := vXMLTable(ctr_table).TagValue;
886: --
887: IF (l_str9 is not null) THEN
888: dbms_lob.writeAppend( p_xfdf_string, length(l_str2), l_str2 );
889: dbms_lob.writeAppend( p_xfdf_string, length(l_str8),l_str8);
890: dbms_lob.writeAppend( p_xfdf_string, length(l_str3), l_str3 );
891: dbms_lob.writeAppend( p_xfdf_string, length(l_str4), l_str4 );
892: dbms_lob.writeAppend( p_xfdf_string, length(l_str9), l_str9);
893: dbms_lob.writeAppend( p_xfdf_string, length(l_str5), l_str5 );
886: --
887: IF (l_str9 is not null) THEN
888: dbms_lob.writeAppend( p_xfdf_string, length(l_str2), l_str2 );
889: dbms_lob.writeAppend( p_xfdf_string, length(l_str8),l_str8);
890: dbms_lob.writeAppend( p_xfdf_string, length(l_str3), l_str3 );
891: dbms_lob.writeAppend( p_xfdf_string, length(l_str4), l_str4 );
892: dbms_lob.writeAppend( p_xfdf_string, length(l_str9), l_str9);
893: dbms_lob.writeAppend( p_xfdf_string, length(l_str5), l_str5 );
894: ELSE
887: IF (l_str9 is not null) THEN
888: dbms_lob.writeAppend( p_xfdf_string, length(l_str2), l_str2 );
889: dbms_lob.writeAppend( p_xfdf_string, length(l_str8),l_str8);
890: dbms_lob.writeAppend( p_xfdf_string, length(l_str3), l_str3 );
891: dbms_lob.writeAppend( p_xfdf_string, length(l_str4), l_str4 );
892: dbms_lob.writeAppend( p_xfdf_string, length(l_str9), l_str9);
893: dbms_lob.writeAppend( p_xfdf_string, length(l_str5), l_str5 );
894: ELSE
895: null;
888: dbms_lob.writeAppend( p_xfdf_string, length(l_str2), l_str2 );
889: dbms_lob.writeAppend( p_xfdf_string, length(l_str8),l_str8);
890: dbms_lob.writeAppend( p_xfdf_string, length(l_str3), l_str3 );
891: dbms_lob.writeAppend( p_xfdf_string, length(l_str4), l_str4 );
892: dbms_lob.writeAppend( p_xfdf_string, length(l_str9), l_str9);
893: dbms_lob.writeAppend( p_xfdf_string, length(l_str5), l_str5 );
894: ELSE
895: null;
896: END IF;
889: dbms_lob.writeAppend( p_xfdf_string, length(l_str8),l_str8);
890: dbms_lob.writeAppend( p_xfdf_string, length(l_str3), l_str3 );
891: dbms_lob.writeAppend( p_xfdf_string, length(l_str4), l_str4 );
892: dbms_lob.writeAppend( p_xfdf_string, length(l_str9), l_str9);
893: dbms_lob.writeAppend( p_xfdf_string, length(l_str5), l_str5 );
894: ELSE
895: null;
896: END IF;
897: END LOOP;
894: ELSE
895: null;
896: END IF;
897: END LOOP;
898: dbms_lob.writeAppend( p_xfdf_string, length(l_str6), l_str6 );
899: ELSE
900: dbms_lob.writeAppend( p_xfdf_string, length(l_str7), l_str7 );
901: END IF;
902: DBMS_LOB.CREATETEMPORARY(p_xfdf_blob,TRUE);
896: END IF;
897: END LOOP;
898: dbms_lob.writeAppend( p_xfdf_string, length(l_str6), l_str6 );
899: ELSE
900: dbms_lob.writeAppend( p_xfdf_string, length(l_str7), l_str7 );
901: END IF;
902: DBMS_LOB.CREATETEMPORARY(p_xfdf_blob,TRUE);
903: clob_to_blob(p_xfdf_string,p_xfdf_blob);
904: --return p_xfdf_blob;
898: dbms_lob.writeAppend( p_xfdf_string, length(l_str6), l_str6 );
899: ELSE
900: dbms_lob.writeAppend( p_xfdf_string, length(l_str7), l_str7 );
901: END IF;
902: DBMS_LOB.CREATETEMPORARY(p_xfdf_blob,TRUE);
903: clob_to_blob(p_xfdf_string,p_xfdf_blob);
904: --return p_xfdf_blob;
905: EXCEPTION
906: WHEN OTHERS then
931: --
932: SELECT userenv('LANGUAGE') INTO g_nls_db_char FROM dual;
933: --
934: l_buffer_len := 20000;
935: l_length_clob := dbms_lob.getlength(p_clob);
936: l_offset := 1;
937: --
938: while l_length_clob > 0 loop
939: --
942: ELSE
943: l_chunk_len := l_buffer_len;
944: END IF;
945: --
946: DBMS_LOB.READ(p_clob,l_chunk_len,l_offset,l_varchar_buffer);
947: --
948: l_raw_buffer := utl_raw.convert(utl_raw.cast_to_raw(l_varchar_buffer),'American_America.AL32UTF8',g_nls_db_char);
949: l_raw_buffer_len := utl_raw.length(utl_raw.convert(utl_raw.cast_to_raw(l_varchar_buffer),'American_America.AL32UTF8',g_nls_db_char));
950: dbms_lob.write(p_blob,l_raw_buffer_len, l_blob_offset, l_raw_buffer);
946: DBMS_LOB.READ(p_clob,l_chunk_len,l_offset,l_varchar_buffer);
947: --
948: l_raw_buffer := utl_raw.convert(utl_raw.cast_to_raw(l_varchar_buffer),'American_America.AL32UTF8',g_nls_db_char);
949: l_raw_buffer_len := utl_raw.length(utl_raw.convert(utl_raw.cast_to_raw(l_varchar_buffer),'American_America.AL32UTF8',g_nls_db_char));
950: dbms_lob.write(p_blob,l_raw_buffer_len, l_blob_offset, l_raw_buffer);
951: --
952: l_blob_offset := l_blob_offset + l_raw_buffer_len;
953: l_offset := l_offset + l_chunk_len;
954: l_length_clob := l_length_clob - l_chunk_len;