この項では、フォームでのBLOBサポートについて説明します。
フォームを作成する場合(アプリケーションの作成ウィザードを使用して、フォーム型(またはレポートおよびフォーム型)のページを作成するか、フォーム型のリージョンを作成する)、または既存のフォームにアイテムを追加する場合、BLOB
型のデータベース列がソースであるアイテムは、ファイル参照型のアイテムになります。フォームがINSERT
にコールされる場合、ユーザーが選択したファイルは、BLOB
列にロードされます。フォームが更新にコールされる場合、ダウンロード・リンクが「参照」ボタンの右に表示されます。ユーザーは、このリンクを使用してファイルをダウンロードできます。
デフォルトのBLOB
サポートでは、一般的なアプリケーションでBLOB
を効果的に管理するために必要とされるすべての情報が提供されているわけではありません。列がBLOB
であるという情報に加えて、ファイルの詳細情報も提供されると、エンド・ユーザーの使いやすさが向上します。ファイル参照ページ・アイテムには、この追加情報を完全に宣言的に管理することを容易にするための追加設定があります。
ファイル参照アイテム・タイプ内では、次の2つの異なるタイプの記憶域タイプが使用できます。
アイテム・ソース属性で指定されたBLOB
列: ここで説明する追加設定の構成をサポートする、完全に宣言的なアプローチです。これは、所有するデータベース表のBLOB
を参照します。
WWV_FLOW_FILES
表: 下位互換性のために用意されています。新しいアプリケーションでは使用できません。
APEX_APPLICATION_TEMP_FILES
表: APEX_APPLICATION_TEMP_FILES
ビューでアクセスできる一時的な場所に、アップロードされたファイルを格納します。「ファイルをパージするタイミング」の選択に応じて、Oracle Application Expressにより、セッションの最後またはアップロード要求の最後にファイルが自動的に削除されます。
この追加情報を提供するには、MIMEタイプ、ファイル名、最終更新日およびキャラクタ・セット設定を格納および追跡するための追加の列を元表に追加することをお薦めします。これは表を拡張することで実行できます。次に例を示します。
ALTER TABLE emp ADD (ATTACH_MIMETYPE VARCHAR2(255), ATTACH_FILENAME VARCHAR2(255), ATTACH_LAST_UPDATE DATE, ATTACH_CHARSET VARCHAR2(128));
注意: BLOB のキャラクタ・セットはアップロード時に自動的に設定されません。BLOB のキャラクタ・セット値を格納する場合、キャラクタ・セットを格納するために使用する列にバインドされる追加のページ・アイテムをページに提供する必要があり、ユーザーはその場合、アップロードするドキュメント用のキャラクタ・セットを指定できるようになります。 |
カスタム表でフォームを手動作成する場合も、この機能を利用できます。このことを行うには、DMLプロセス・タイプがDML_PROCESS_ROW
のページにおいて、「記憶域タイプ」設定が「アイテム・ソース属性で指定されたBLOB
列」である「ファイル参照」アイテム・タイプを使用します。このプロセスによって、表名と主キー列が決定されます。
作業中のBLOBがイメージである場合は、そのイメージをフォームでも表示できます。これを宣言的に処理するために、イメージの表示アイテム・タイプを使用できます。付録A、「アイテム・タイプについて」を参照してください。手続き的な処理については、「フォームおよびレポートでのBLOBサポートの理解」を参照してください。