質問: 1; exit; data_delete.batを実行するとlog.txtが出力されます。 ---log.txt--- yyyy/mm/dd hh:nn:ss.xx データ削除開始 xxx行が削除されました。 yyyy/mm/dd hh:nn:ss.xx データ削除終了 この時、log.txtの内容を下記のように変更したいのですが、 その方法が分りません。 ---log.txt--- yyyy/mm/dd hh:nn:ss.xx データ削除開始 yyyy/mm/dd hh:nn:ss.xx データ削除終了 xxx行が削除されました。 できれば[削除件数 xxx 件]と表示させたかったのですが、 自分の調べた限りではできそうにないので、 フィードバックされる文字列をそのまま使う方向で進めています。 上記ログの出力方法ができるようでしたら、 その方法を教えて頂けると嬉しいです。 宜しくお願いします。
回答: batのリダイレクト>>を使わず、sql*plus(@ではなく*です)のspoolを使ってはいかがでしょう? set nls_date_format='yyyy/mm/dd hh24:mi:ss' sqlplus -s user/pass@tnsname @data_delete.sql data_delete.sqlの中身whenever sqlerror exit failer set echo off spool log.txt select sysdate||' データ削除開始' delete from table where flg = 1; select sysdate||' データ削除終了' ご希望のように yyyy/mm/dd hh:nn:ss.xx データ削除開始 yyyy/mm/dd hh:nn:ss.xx データ削除終了 xxx行が削除されました。 とするためにはちょっとsqlだけではできないのでpl/sqlを使う必要があります。