Autonomous DatabaseのDATA_PUMP_DIR以下にあるファイルを、逐一コマンドを実行して確認するのが手間だったので、APEXアプリを作ってみました。
以下のような動作をします。
エクスポートしたアプリケーションを以下に起きました。
https://github.com/ujnak/apexapps/blob/master/exports/data-pump-dir.sql
実行にあたって、APEXアプリケーションをインストールしたスキーマに、ディレクトリDATA_PUMP_DIRのすべての権限が割り当てられている必要があります。
管理者ADMINにて、以下のコマンドを実行します。
grant all on directory data_pump_dir to スキーマ名;
少々、アプリケーションの説明をします。
DATA_PUMP_DIR以下のファイルを一覧している、対話モード・レポートのソースは以下です。
select * from dbms_cloud.list_files('DATA_PUMP_DIR')
sys.htp.p('<pre><code>');
sys.htp.p(to_clob(bfilename('DATA_PUMP_DIR', :P2_OBJECT_NAME)));
sys.htp.p('</code></pre>');
削除ボタンを実装している、プロセスのソースは以下です。
dbms_cloud.delete_file('DATA_PUMP_DIR', :P2_OBJECT_NAME);
ダウンロード処理を実装している、Ajaxコールバックのソースは以下です。
declare
l_blob blob;
begin
l_blob := to_blob(bfilename('DATA_PUMP_DIR', :P2_OBJECT_NAME));
sys.htp.init;
sys.htp.p('Content-Length: ' || dbms_lob.getlength(l_blob));
sys.htp.p('Content-Disposition: attachment; filename=' || :P2_OBJECT_NAME);
sys.owa_util.http_header_close;
sys.wpg_docload.download_file(l_blob);
apex_application.stop_apex_engine;
end;
以上になります。
簡単なアプリですが、何かの参考になれば幸いです。
完