695: v_varchar VARCHAR2(32767);
696: v_start PLS_INTEGER := 1;
697: v_buffer PLS_INTEGER := 32767;
698: BEGIN
699: DBMS_LOB.CREATETEMPORARY(v_clob, TRUE);
700:
701: FOR i IN 1..CEIL(DBMS_LOB.GETLENGTH(blob_in) / v_buffer)
702: LOOP
703: v_varchar := UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(blob_in, v_buffer, v_start));
697: v_buffer PLS_INTEGER := 32767;
698: BEGIN
699: DBMS_LOB.CREATETEMPORARY(v_clob, TRUE);
700:
701: FOR i IN 1..CEIL(DBMS_LOB.GETLENGTH(blob_in) / v_buffer)
702: LOOP
703: v_varchar := UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(blob_in, v_buffer, v_start));
704:
705: DBMS_LOB.WRITEAPPEND(v_clob, LENGTH(v_varchar), v_varchar);
699: DBMS_LOB.CREATETEMPORARY(v_clob, TRUE);
700:
701: FOR i IN 1..CEIL(DBMS_LOB.GETLENGTH(blob_in) / v_buffer)
702: LOOP
703: v_varchar := UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(blob_in, v_buffer, v_start));
704:
705: DBMS_LOB.WRITEAPPEND(v_clob, LENGTH(v_varchar), v_varchar);
706:
707: v_start := v_start + v_buffer;
701: FOR i IN 1..CEIL(DBMS_LOB.GETLENGTH(blob_in) / v_buffer)
702: LOOP
703: v_varchar := UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(blob_in, v_buffer, v_start));
704:
705: DBMS_LOB.WRITEAPPEND(v_clob, LENGTH(v_varchar), v_varchar);
706:
707: v_start := v_start + v_buffer;
708: END LOOP;
709:
715: as
716: l_blob blob;
717: l_dest_offset integer := 1;
718: l_source_offset integer := 1;
719: l_lang_context integer := DBMS_LOB.DEFAULT_LANG_CTX;
720: l_warning integer := DBMS_LOB.WARN_INCONVERTIBLE_CHAR;
721: BEGIN
722: DBMS_LOB.CREATETEMPORARY(l_blob, TRUE);
723: DBMS_LOB.CONVERTTOBLOB
716: l_blob blob;
717: l_dest_offset integer := 1;
718: l_source_offset integer := 1;
719: l_lang_context integer := DBMS_LOB.DEFAULT_LANG_CTX;
720: l_warning integer := DBMS_LOB.WARN_INCONVERTIBLE_CHAR;
721: BEGIN
722: DBMS_LOB.CREATETEMPORARY(l_blob, TRUE);
723: DBMS_LOB.CONVERTTOBLOB
724: (
718: l_source_offset integer := 1;
719: l_lang_context integer := DBMS_LOB.DEFAULT_LANG_CTX;
720: l_warning integer := DBMS_LOB.WARN_INCONVERTIBLE_CHAR;
721: BEGIN
722: DBMS_LOB.CREATETEMPORARY(l_blob, TRUE);
723: DBMS_LOB.CONVERTTOBLOB
724: (
725: dest_lob =>l_blob,
726: src_clob =>p_clob,
719: l_lang_context integer := DBMS_LOB.DEFAULT_LANG_CTX;
720: l_warning integer := DBMS_LOB.WARN_INCONVERTIBLE_CHAR;
721: BEGIN
722: DBMS_LOB.CREATETEMPORARY(l_blob, TRUE);
723: DBMS_LOB.CONVERTTOBLOB
724: (
725: dest_lob =>l_blob,
726: src_clob =>p_clob,
727: amount =>DBMS_LOB.LOBMAXSIZE,
723: DBMS_LOB.CONVERTTOBLOB
724: (
725: dest_lob =>l_blob,
726: src_clob =>p_clob,
727: amount =>DBMS_LOB.LOBMAXSIZE,
728: dest_offset =>l_dest_offset,
729: src_offset =>l_source_offset,
730: blob_csid =>DBMS_LOB.DEFAULT_CSID,
731: lang_context=>l_lang_context,
726: src_clob =>p_clob,
727: amount =>DBMS_LOB.LOBMAXSIZE,
728: dest_offset =>l_dest_offset,
729: src_offset =>l_source_offset,
730: blob_csid =>DBMS_LOB.DEFAULT_CSID,
731: lang_context=>l_lang_context,
732: warning =>l_warning
733: );
734: return l_blob;