2021年10月21日木曜日

DATA_PUMP_DIRにあるファイルの内容を表示する

 Autonomous Databaseでのエクスポート処理がうまくいかず、色々と対応していたところ、ディレクトリのDATA_PUMP_DIR以下にログ・ファイルが出力されているようでした。

select * from dbms_cloud.list_files('DATA_PUMP_DIR');


出力されているファイルの内容を確認するために、簡単なスクリプトをPL/SQLで書いてみました。ファイルの拡張子が.logであるファイルをすべて表示しています。

DECLARE
log_text clob;
BEGIN
for r in (
select * from dbms_cloud.list_files('DATA_PUMP_DIR')
where object_name like '%.log' order by created
)
LOOP
log_text := to_clob(bfilename('DATA_PUMP_DIR', r.object_name));
dbms_output.put_line('---- BEGIN ' || r.object_name || ' ----');
dbms_output.put_line(log_text);
dbms_output.put_line('---- END ' || r.object_name || ' ----');
end loop;
end;


ファイルの削除に使ったスクリプトです。

BEGIN
for r in (
select * from dbms_cloud.list_files('DATA_PUMP_DIR')
where object_name like 'report.csv' order by created
)
LOOP
dbms_cloud.delete_file('DATA_PUMP_DIR', r.object_name);
dbms_output.put_line('DELETED ' || r.object_name);
end loop;
end;

何かの参考になれば幸いです。