36.38 GET_BLOB_FILE_SRCファンクション

ダウンロード・リンクを指定した組込み方式を使用するかわりに、APEX_UTIL.GET_BLOB_FILE_SRCファンクションを使用できます。この方法を使用すると、イメージの表示形式をより具体的に設定できます(高さタグおよび幅タグを使用)。この方法は、有効なOracle Application Expressセッションからコールされた場合のみ有効であることに注意してください。また、アプリケーション内に有効な項目の形式としてリスト表示されるために、BLOBを説明するパラメータが必要です。この項目は後でファンクションが参照します。

このファンクションによって返されるURLがAPEX_UTIL.PREPARE_URLに渡され、参照されるページ・アイテムがモーダル・ページにある場合は、P_PLAIN_URL引数をTRUEに設定して、モーダル・ダイアログ・コードが追加されないようにします。

構文

APEX_UTIL.GET_BLOB_FILE_SRC (
    p_item_name           IN VARCHAR2 DEFAULT NULL,
    p_v1                  IN VARCHAR2 DEFAULT NULL,
    p_v2                  IN VARCHAR2 DEFAULT NULL,
    p_content_disposition IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;

パラメータ

表36-35 GET_BLOB_FILE_SRCのパラメータ

パラメータ 説明

p_item_name

タイプがFILEで、DB列のソース・タイプを含む有効なアプリケーション・ページ・アイテムの名前。

p_v1

主キー列1の値。

p_v2

主キー列2の値。

p_content_disposition

inlineまたはattachmentを指定します(その他の値はすべて無視されます)

PL/SQLファンクションの本体として使用する場合:

RETURN '<img src="'||APEX_UTIL.GET_BLOB_FILE_SRC('P2_ATTACHMENT',:P2_EMPNO)||'" />';

SQLタイプのリージョン・ソースとして使用する場合:

SELECT ID, NAME,CASE WHEN NVL(dbms_lob.getlength(document),0) = 0
    THEN NULL 
    ELSE CASE WHEN attach_mimetype like 'image%'
    THEN '<img src="'||apex_util.get_blob_file_src('P4_DOCUMENT',id)||'" />' 
    ELSE 
    '<a href="'||apex_util.get_blob_file_src('P4_DOCUMENT',id)||'">Download</a>'
    end 
    END new_img
    FROM TEST_WITH_BLOB

前述の例は、BLOBを表示できる場合はレポート内に表示し、表示できない場合はダウンロード・リンクを提供する方法を示しています。