プライマリ・コンテンツに移動

Oracle® Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド リリース5.1 E83810-03 |
| 目次 | 索引

前 | 次 |

# 8.7 フォームおよびレポートでのBLOBサポートの理解

Oracle Application Expressでは、宣言的な`BLOB`サポートが提供されているため、開発者はフォームでのファイルの宣言的なアップロードや、レポートでのファイルのダウンロードおよび表示を行うことができます。`BLOB`の表示とダウンロードは、PL/SQLを使用して手続き的に作成することもできます。このセクションでは、ファイルのアップロード、ダウンロードおよび表示を行う方法と、`BLOB`列に格納されているファイルを正しく管理するために重要となる追加のファイル属性(`MIME`タイプやファイル名など)の管理方法について説明します。この機能を使用すると、簡単にOracle Application Expressアプリケーションを拡張して、イメージ、ドキュメント、ビデオなどのファイルを管理できます。

トピック:

- レポートでのBLOBサポートについて
- ダウンロード・リンクの提供について
- BLOBの表示について
- 手続き的なBLOBの使用について

## 8.7.1 レポートでのBLOBサポートについて

Oracle Application Expressでは、従来のレポートと対話モード・レポートの両方に対する`BLOB`サポートが提供されています。ウィザードを使用してレポートを作成し、`BLOB`タイプの列を含める場合は、基本的なサポートが含まれます。ダウンロード機能を使いやすくするために、生成後に詳細情報を追加する必要があります。

## 8.7.2 ダウンロード・リンクの提供について

レポートにダウンロード・リンクを容易に含めることができるように、レポートには`BLOB`の長さ(`dbms_lob.getlength(RESUME)`など)を選択します。長さが0の場合、`BLOB`は`NULL`となり、ダウンロード・リンクは表示されません。同様に、ダウンロード・リンクの書式を設定できる、日付または数に対する書式マスクを指定します。DOWNLOAD書式は、次の例のように3つ以上のパラメータを指定する必要があるという点で他の書式マスクより複雑です。

    DOWNLOAD:EMP:RESUME:EMPNO

次の表は、DOWNLOAD書式のパラメータについて説明します。

位置 | 属性 | 必須 | 説明
--- | --- | --- | ---
1 | DOWNLOAD | はい | DOWNLOADレポート書式マスクを指定します。
2 | 表名 | はい | `BLOB`タイプのターゲット列を含む表の名前(大/小文字が区別されます)。
3 | BLOBを含む列 | はい | `BLOB`タイプの列の名前(大/小文字が区別されます)。
4 | 主キー列1 | はい | 主キー列1の名前。大文字と小文字が区別されます。
5 | 主キー列2 | いいえ | 主キー列2の名前。大文字と小文字が区別されます。
6 | MIMEタイプ列 | いいえ | `MIME`タイプを格納するために使用する列名(大/小文字が区別されます)。
7 | ファイル名列 | いいえ | `BLOB`のファイル名を格納するために使用する列名(大/小文字が区別されます)。ユーザーがファイルをダウンロードするときに`NULL`の場合は、この列名がデフォルトで使用されます。
8 | 最終更新列 | いいえ | `BLOB`の最終更新日付を格納するために使用する列名(大/小文字が区別されます)。これを指定すると、ファイルをダウンロードする際のHTTPヘッダーに最終変更日が示され、`BLOB`をWebブラウザにキャッシュできるようになります。指定しない場合は、ファイルをブラウザにキャッシュできない場合があります。
9 | キャラクタ・セット列 | いいえ | `BLOB`のキャラクタ・セットを格納するために使用する列名(大/小文字が区別されます)。キャラクタ・セットのエンコーディングを維持する必要がある場合など、アジア言語で最も使用されます。
10 | コンテンツ配置 | いいえ | `inline`または`attachment`を指定します。その他のすべての値は無視されます。`MIME`タイプが提供され、ファイルが表示可能なタイプである場合は、ファイルが表示されます。`MIME`タイプが提供されていない場合、またはファイルをインラインで表示できない場合、ユーザーはダウンロードを行うように求められます。
11 | ダウンロード・テキスト | いいえ | ダウンロード・リンクに使用する文字列。何も指定されていない場合は、`Download`が使用されます。これは置換をサポートしています(翻訳されたアプリケーションに有効です)。
12 | 表所有者 | はい | BLOBタイプのターゲット列を含む表所有者の名前を識別します。

次に例を示します。

    DOWNLOAD:EMP:RESUME:EMPNO::RESUME_MIMETYPE:RESUME_FILENAME:RESUME_LAST_UPDATE::attachment:Resume

上述の説明に従い、これらのパラメータを入力し、形式を作成します。「数値/日付書式」アイテムには、「BLOBフォーマット」を選択する必要があります。選択すると、BLOB列属性リージョンが表示され、前述のすべてのパラメータを入力できます。

## 8.7.3 BLOBの表示について

作業中の`BLOB`がイメージである場合は、新しいIMAGEレポート書式マスクを使用してレポートに表示できます。`MIME`タイプに関係なく、レポートでは常にBLOBの表示が試行されます。BLOBのレンダリングを行うことができない場合は、壊れたイメージが表示されます。

次の表は、IMAGE書式マスクのパラメータについて説明します。

位置 | 属性 | 必須 | 説明
--- | --- | --- | ---
1 | IMAGE | はい | IMAGEレポート書式マスクを指定します。
2 | 表名 | はい | `BLOB`タイプのターゲット列を含む表の名前(大/小文字が区別されます)。
3 | BLOBを含む列 | はい | `BLOB`タイプの列の名前(大/小文字が区別されます)。
4 | 主キー列1 | はい | 主キー列1の名前。大文字と小文字が区別されます。
5 | 主キー列2 | いいえ | 主キー列2の名前。大文字と小文字が区別されます。
6 | MIMEタイプ列 | いいえ | `MIME`タイプを格納するために使用する列名(大/小文字が区別されます)。
7 | ファイル名列 | いいえ | IMAGE書式には使用しませんが、IMAGEとDOWNLOAD間で書式を簡単に変更する場合に必要です。
8 | 最終更新列 | いいえ | `BLOB`の最終更新日付を格納するために使用する列名(大/小文字が区別されます)。これを指定すると、ファイルをダウンロードする際のHTTPヘッダーに最終変更日が示され、`BLOB`をWebブラウザにキャッシュできるようになります。指定しない場合は、ファイルをブラウザにキャッシュできない場合があります。
9 | キャラクタ・セット列 | いいえ | IMAGE書式には使用しませんが、IMAGEとDOWNLOAD間で書式を簡単に変更する場合に必要です。
10 | コンテンツ配置 | いいえ | IMAGE書式には使用しませんが、IMAGEとDOWNLOAD間で書式を簡単に変更する場合に必要です。
11 | 代替テキスト | いいえ | イメージに関連付けられている代替タグに使用する文字列です。
12 | 表所有者 | はい | BLOBタイプのターゲット列を含む表所有者の名前を識別します。

次に例を示します。

    IMAGE:EMP:RESUME:EMPNO::RESUME_MIMETYPE:RESUME_FILENAME:RESUME_LAST_UPDATE::attachment:Resume

上述の説明に従い、これらのパラメータを入力し、形式を作成します。「数値/日付書式」アイテムには、「BLOBフォーマット」を選択する必要があります。選択すると、新しいリージョンのBLOB列属性が表示され、上述の説明に従って、すべてのパラメータを記入できます。

## 8.7.4 手続き的なBLOBの使用について

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

関連項目:

Oracle Application Express APIリファレンスの「GET_BLOB_FILE_SRCファンクション」