Skip to content

Commit

Permalink
handle null blob properly
Browse files Browse the repository at this point in the history
  • Loading branch information
erilong committed Oct 17, 2007
1 parent da8207c commit 9a5e347
Showing 1 changed file with 10 additions and 10 deletions.
20 changes: 10 additions & 10 deletions symmetric/src/main/resources/oracle-transactionid.sql
Expand Up @@ -24,20 +24,20 @@ CREATE OR REPLACE package body pack_symmetric as
CREATE OR REPLACE FUNCTION fn_sym_blob2clob (blob_in IN BLOB)
RETURN CLOB
AS
v_clob CLOB;
v_clob CLOB := null;
v_varchar VARCHAR2(32767);
v_start PLS_INTEGER := 1;
v_buffer PLS_INTEGER := 32767;
BEGIN
DBMS_LOB.CREATETEMPORARY(v_clob, TRUE);

FOR i IN 1..CEIL(DBMS_LOB.GETLENGTH(blob_in) / v_buffer)
LOOP
v_varchar := UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(blob_in, v_buffer, v_start));
DBMS_LOB.WRITEAPPEND(v_clob, LENGTH(v_varchar), v_varchar);
v_start := v_start + v_buffer;
END LOOP;

IF blob_in IS NOT NULL THEN
DBMS_LOB.CREATETEMPORARY(v_clob, TRUE);
FOR i IN 1..CEIL(DBMS_LOB.GETLENGTH(blob_in) / v_buffer)
LOOP
v_varchar := UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(blob_in, v_buffer, v_start));
DBMS_LOB.WRITEAPPEND(v_clob, LENGTH(v_varchar), v_varchar);
v_start := v_start + v_buffer;
END LOOP;
END IF;
RETURN v_clob;
END fn_sym_blob2clob;
/
Expand Down

0 comments on commit 9a5e347

Please sign in to comment.