apex_application.stop_apex_engine> wpg_docload
の後 電話。これにより、HTTPヘッダーがさらに出力されるのを防ぎ、さらに頂点コードが生成されるため、ダウンロードが台無しになる可能性があります。
owa_util.mime_header( nvl(v_mime,'application/octet'), FALSE );
htp.p('Content-length: ' || v_length);
htp.p('Content-Disposition: attachment; filename="'||replace(replace(substr(v_file_name,instr(v_file_name,'/')+1),chr(10),null),chr(13),null)|| '"');
owa_util.http_header_close;
wpg_docload.download_file( Lob_loc );
apex_application.stop_apex_engine;
さらに、詳しく説明します:
はい。しかし、必ずしもあなたの場合ではありません。データベースセッションに関してapexがどのように機能するかを覚えておくことが重要です。 Apexはステートレスであり、接続プールで動作します。 apexセッションは通常1つのデータベースセッションと一致しません。たとえば、レンダリングと処理の間で同じデータベースセッションが使用されることは保証されません。これは、のドキュメントでも簡単に説明されています。セッション状態管理について 、便宜上コピー:
グローバル一時テーブルの場合、データはその現在のデータベースセッションにのみ存在するため、多くの場合、これを使用しても意味がありません。この例は、オンロードのどこかでGTTにデータをロードし、送信後のプロセスまたはajax呼び出しでそれを使用することを意味する場合です。テーブルが空になる可能性が高いです。
ただし、Apexは、 apex_collection
、特定の頂点セッション内でデータを一時的に保持します。