19: chunkcount binary_integer := 0;
20: cBuffer varchar2(32000);
21: begin
22: chunksize := 12288;
23: amount := dbms_lob.getLength(pIDoc);
24: if(chunksize < amount) then
25: chunkcount := round((amount / chunksize)+0.5);
26: else
27: chunkCount := 1;
27: chunkCount := 1;
28: end if;
29:
30: for i in 1..chunkcount loop
31: dbms_lob.read(pIDoc, chunksize, position, rawData);
32: base64raw := utl_encode.base64_encode(rawData);
33: cBuffer := utl_raw.cast_to_varchar2(base64Raw);
34: dbms_lob.writeAppend(pODoc, length(cBuffer), cBuffer);
35: position := position + chunksize;
30: for i in 1..chunkcount loop
31: dbms_lob.read(pIDoc, chunksize, position, rawData);
32: base64raw := utl_encode.base64_encode(rawData);
33: cBuffer := utl_raw.cast_to_varchar2(base64Raw);
34: dbms_lob.writeAppend(pODoc, length(cBuffer), cBuffer);
35: position := position + chunksize;
36: end loop;
37: dbms_lob.WriteAppend(pODoc, 1, wf_core.newline);
38:
33: cBuffer := utl_raw.cast_to_varchar2(base64Raw);
34: dbms_lob.writeAppend(pODoc, length(cBuffer), cBuffer);
35: position := position + chunksize;
36: end loop;
37: dbms_lob.WriteAppend(pODoc, 1, wf_core.newline);
38:
39: exception
40: when others then
41: wf_core.context('WF_MAIL_UTIL', 'EncodeBLOB');
59: chunkcount binary_integer := 0;
60: cBuffer varchar2(32000);
61: bufsize number;
62: begin
63: amount := dbms_lob.getLength(pIDoc);
64: chunksize := 16896; -- Do not change
65: if(chunksize < amount) then
66: chunkcount := round((amount / chunksize)+0.5);
67: else
67: else
68: chunkCount := 1;
69: end if;
70:
71: dbms_lob.trim(pODoc, 0);
72: for i in 1..chunkcount loop
73: dbms_lob.read(pIDoc, chunksize, position, cBuffer);
74: base64raw := utl_raw.cast_to_raw(cBuffer);
75: rawData := utl_encode.base64_decode(base64Raw);
69: end if;
70:
71: dbms_lob.trim(pODoc, 0);
72: for i in 1..chunkcount loop
73: dbms_lob.read(pIDoc, chunksize, position, cBuffer);
74: base64raw := utl_raw.cast_to_raw(cBuffer);
75: rawData := utl_encode.base64_decode(base64Raw);
76: bufsize := utl_raw.length(rawData);
77: dbms_lob.writeAppend(pODoc, bufsize, rawData);
73: dbms_lob.read(pIDoc, chunksize, position, cBuffer);
74: base64raw := utl_raw.cast_to_raw(cBuffer);
75: rawData := utl_encode.base64_decode(base64Raw);
76: bufsize := utl_raw.length(rawData);
77: dbms_lob.writeAppend(pODoc, bufsize, rawData);
78: position := position + chunksize;
79: end loop;
80:
81: exception