我一直試圖在使用Oracle BI Publisher作爲我的打印服務器的PDF報告中輸出BLOB。我有 真的很小的圖像沒有問題,但是當圖像尺寸增加時,我沒有輸出。我用這個博客帖子 提出的方法: https://blogs.oracle.com/xmlpublisher/entry/inserting_blobs_into_your_repo在PDF報告中顯示BLOB圖像 - Oracle APEX
我注意到斯科特韋斯利也面臨着同樣的問題。 這是我使用,以保持我的圖片存儲在表:
CREATE TABLE MY_IMAGES (
ID NUMBER NOT NULL,
IMAGE BLOB,
FILE_NAME VARCHAR2(50),
MIME_TYPE VARCHAR2(30)
);
/
我用添霍爾的功能編碼BLOB列爲Base64:
CREATE OR REPLACE FUNCTION base64encode(p_blob IN BLOB)
RETURN CLOB
-----------------------------------------------------------------------------------
- File Name : http://oracle-base.com/dba/miscellaneous/base64encode.sql
- Author : Tim Hall
- Description : Encodes a BLOB into a Base64 CLOB.
- Last Modified: 09/11/2011
-----------------------------------------------------------------------------------
IS
l_clob CLOB;
l_step PLS_INTEGER := 12000; - make sure you set a multiple of 3 not higher than 24573
BEGIN
FOR i IN 0 .. TRUNC((DBMS_LOB.getlength(p_blob) - 1)/l_step) LOOP
l_clob := l_clob || UTL_RAW.cast_to_varchar2(UTL_ENCODE.base64_encode
(DBMS_LOB.substr(p_blob,
l_step, i * l_step + 1)));
END LOOP;
RETURN l_clob;
END;
這是我的SELECT語句作爲我的報表查詢:
SELECT FILE_NAME, BASE64ENCODE(IMAGE)
FROM MY_IMAGES
在我的RTF報表佈局我使用此代碼來呈現編碼的BLOB:
<fo:instream-foreign-object content-type="image/jpg">
<xsl:value-of select="IMAGE"/>
</fo:instream-foreign-object>
我在表中插入一個5KB形象和它的工作完美,但是當我用一個500KB的圖像試過,有 沒有結果。 我想知道是否有人提出瞭解決方案,或者如果這個問題解決了。我在APEX 5.1上,在 的11g數據庫上使用BI Publisher 11g。 我很欣賞任何幫助提前。
有你OAC創建演示如果是的,我會考慮它。 –
如果我沒有弄錯OAC在其實例設置中沒有打印服務器設置。幾天前我在OAC上進行了測試,很多基本功能無法正常工作。無論如何,我找到了我將在下面發佈的解決方案。 –