
バッチファイルを使用したsql@plusの実行及びログ出力について
Windows Server 2003上で動作しているOracle10gのDBに対して
Windows XP上に配置したバッチファイルをタスクで起動させ、
sql@plusを使用してデータを削除する処理を行いたいと考えています。
---data_delete.bat---
@echo %date% %time% データ削除開始 >> log.txt
sqlplus -S USER/PASS@TNSNAME @data_delete.sql >> log.txt
@echo %date% %time% データ削除終了 >> log.txt
---data_delete.sql---
DELETE FROM TABLE WHERE FLG = 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 件]と表示させたかったのですが、
自分の調べた限りではできそうにないので、
フィードバックされる文字列をそのまま使う方向で進めています。
上記ログの出力方法ができるようでしたら、
その方法を教えて頂けると嬉しいです。
宜しくお願いします。
No.1ベストアンサー
- 回答日時:
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を使う必要があります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
バッチからsqlplusの接続エラーの検知について
その他(プログラミング・Web制作)
-
batファイルでのSQL(oracle)実行エラーについて
Oracle
-
selectした結果の余計な余白を取るにはどうしたらよいのでしょうか
Oracle
-
4
PL/SQLをWindowsのBATファイルで実行するには
Oracle
-
5
SQLファイル内のSQL実行ログ取得
Oracle
-
6
SQL*Plusの終了はquit?exit?
Oracle
-
7
PL/SQLで@ファイル名が反応しません
Oracle
-
8
sqlplusでヘッダーが付かない
Oracle
-
9
PL/SQLでログを確認したい。
Oracle
-
10
エラーコード取得
Oracle
-
11
SQL実行結果取得
Oracle
-
12
SQLPLUSで結果を画面に表示しない
Oracle
-
13
sqlplusで表示が変なので、出力を整形したい。
Oracle
-
14
sqlのエラーハンドリングについて質問です。
Oracle
-
15
PL/SQLでSPOOLさせたいのですが、可能でしょうか?
Oracle
-
16
SQLローダーCSV取込で、囲み文字がデータ中に入っている場合について
Oracle
-
17
oracle spool SJIS → UTF-8
Oracle
-
18
動的にSPOOLファイルのファイル名を生成したい
Oracle
-
19
SQL*PLUSでの分秒までの表示の仕方
Oracle
-
20
SQL*Plus:SPOOLコマンドでのSQL出力
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
もう関わりたくない人がいたらL...
-
5
【エクセル】セル内の右側のみ...
-
6
7つ中3つ削除
-
7
指定した文字があった場合、そ...
-
8
インスタグラムのギャラリーの...
-
9
LINEのホームのベルマークにあ...
-
10
喧嘩をしてLINE削除され、 また...
-
11
エクセルで下の空白行を削除したい
-
12
ウェブページへのアクセス不可 ...
-
13
ダブルクォーテーションの削除...
-
14
エクセル ユーザー設定リスト...
-
15
エクセルVBAで行削除時にエラー...
-
16
不動産投資の勧誘電話がたまに...
-
17
【HTML】ツールチップを強制的...
-
18
Microsoft Access 2016でエラー...
-
19
SDカードの音楽の消去
-
20
アクセスにおいて間違って削除...
おすすめ情報
公式facebook
公式twitter