一:报表的取数表结果,图片为BLOB类型字段:
-- 将blob转换为clob
function getbase64string(p_blob blob) return clob is
l_result clob;
begin
dbms_lob.createtemporary(lob_loc => l_result, cache => false, dur => 0);
wf_mail_util.encodeblob(p_blob, l_result);
return(l_result);
end getbase64string;
-- 打印图片测试(每张图片的长度不能太大,最好在10K之内吧,否则会出问题)
procedure print_image(p_errbuf out varchar2, p_retcode out varchar2) is
cursor cur is
select d.doc_desc, getbase64string(d.doc) image
from cux_gh_documents d;
begin
print('<?xml version="1.0" encoding="gb2312"?><data>');
for c in cur loop
print('<row>');
print('<dir_name>' || c.doc_desc || '</dir_name>');
print('<docname>' || c.image || '</docname>');
print('</row>');
end loop;
print('</data>');
exception
when others then
print(sqlerrm);
fnd_file.PUT_LINE(fnd_file.LOG, sqlerrm);
end print_image;
RTF模板
语法:<fo:instream-foreign-object content-type="image/gif"><xsl:value-of
select="docname"/></fo:instream-foreign-object>
其它步骤相同:定义可执行、并发、挂请求组,最后提交请求测试,效果如下:
报表开发完成。。。