
バッチファイルを使用した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で結果を画面に表示しない
Oracle
-
PL/SQLで@ファイル名が反応しません
Oracle
-
SQL実行結果取得
Oracle
-
-
4
バッチからsqlplusの接続エラーの検知について
その他(プログラミング・Web制作)
-
5
シェルスクリプトでオラクルのエラーメッセージを取得するには
Oracle
-
6
batファイルでのSQL(oracle)実行エラーについて
Oracle
-
7
SQL*Plusで、コマンドの返答を非表示にする方法
Oracle
-
8
PL/SQLをWindowsのBATファイルで実行するには
Oracle
-
9
sqlplusでヘッダーが付かない
Oracle
-
10
selectした結果の余計な余白を取るにはどうしたらよいのでしょうか
Oracle
-
11
SQLローダーCSV取込で、囲み文字がデータ中に入っている場合について
Oracle
-
12
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
13
PL/SQLでログを確認したい。
Oracle
-
14
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
15
sqlplusのspoolで空白行出現
Oracle
-
16
oracle spool SJIS → UTF-8
Oracle
-
17
sqlのエラーハンドリングについて質問です。
Oracle
-
18
sqlplusで表示が変なので、出力を整形したい。
Oracle
-
19
Oracleでの文字列連結サイズの上限
Oracle
-
20
SQL*LoaderでCSVから指定した列のみインポートしたい。
Oracle
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Yahooフリマってどれくらい時間...
-
喧嘩をしてLINE削除され、 また...
-
言論統制を受けたことはありま...
-
Windows media playerでcd-rwに...
-
outlook迷惑メールフォルダーに...
-
もう関わりたくない人がいたらL...
-
ドコモをお使いの方に質問です...
-
指定した文字があった場合、そ...
-
スマホのアプリを削除すると、...
-
インスタグラムのギャラリーの...
-
エクセルVBAで行削除時にエラー...
-
これはやらせですよね?
-
ウェブページへのアクセス不可 ...
-
google chromeのブックマークが...
-
知恵袋の方で質問が規約違反に...
-
すべてやりきった、大満足を意...
-
告白してフラれた相手の連絡先...
-
インスタアカウント、前の携帯...
-
以前下記の質問をした後、写真...
-
VBA IF文でORを使ったとき後ろ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えてgooでガイドライン違反と...
-
教えてgooでコメントしてすぐ消...
-
先ほどした質問が削除されまし...
-
Yahooフリマってどれくらい時間...
-
言論統制を受けたことはありま...
-
スマホのアプリを削除すると、...
-
outlook迷惑メールフォルダーに...
-
告白してフラれた相手の連絡先...
-
指定した文字があった場合、そ...
-
Windows11に残されたWindows10...
-
もう関わりたくない人がいたらL...
-
ATMに登録されている振込先を削...
-
VBA:Openステートメントで開い...
-
ウェブページへのアクセス不可 ...
-
アクセスにおいて間違って削除...
-
バッチファイルを使用したsql@p...
-
喧嘩をしてLINE削除され、 また...
-
これはやらせですよね?
-
エクセルで住所の混在する「丁...
-
ORA-14452について
おすすめ情報