46.7 UPLOAD_TEMPLATEファンクション

このファンクションは、テンプレートをOCIオブジェクト・ストレージにアップロードし、対応するIDを戻します。

Oracle Document Generator事前構築済ファンクションがインスタンスでプリント・サーバーとして構成されている場合のみ使用できます。

APEX_PRINT.GENERATE_DOCUMENTおよびREMOVE_TEMPLATEプロシージャAPIと組み合せて使用し、レポート・レイアウトとして格納されていない同じカスタム・テンプレートを使用してドキュメントを生成します。

構文

APEX_PRINT.UPLOAD_TEMPLATE (
    p_template      IN BLOB,
    p_template_type IN t_template_type  DEFAULT c_template_docx )
    RETURN NUMBER;

パラメータ

パラメータ 説明
p_template テンプレートのコンテンツ。
p_template_type テンプレートのタイプ。

戻り値

将来のコールでテンプレートを参照する一意のIDを含む数値。

次の例では、エンド・ユーザーがOracle APEXでアップロードしたオブジェクト・ストレージにテンプレートをアップロードし、PDFドキュメントを生成して、その後にテンプレートを削除します。

DECLARE
    l_template       blob;
    l_template_id    number;
    l_data           sys.json_object_t := sys.json_object_t();
    l_document       blob;
BEGIN

    SELECT blob_content
      INTO l_template
      FROM apex_application_temp_files
     WHERE name = :P1_TEMPLATE;

    l_template_id := apex_print.upload_template( p_template => l_template );

    l_data.put( 'name', 'Scott' );

    l_document := apex_print.generate_document(
                      p_data         => l_data.to_clob,
                      p_template_id  => l_template_id );

    apex_print.remove_template( p_template_id => l_template_id );

EXCEPTION
    WHEN others THEN
        apex_print.remove_template( p_template_id => l_template_id );
END;