[前の記事]« バッチファイルでWindowsの種類を判別するには?
[次の記事]バッチ起動時の引数の個数の数え方 »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「SQLとコマンド・プロンプト」索引へ

バッチでファイルを読み込んで、取得した文字列をSQL文の条件に設定したい

1154.
バッチでファイルを読み込んで、取得した文字列をSQL文の条件に設定したい
2006年05月31日(水) 10時32分
Hisa
●DOS/Windowsのバージョン↓
Windows2000

ある処理で作成されたファイル(ifファイル)
の一行目のデータを読み込んで、
日付にあたる箇所(一行目の50字目から14文字)
を日付と時間に分けて抽出し、

あるテーブルの処理日付・時間の条件に設定して、
一致するデータに処理済「1」に更新を行うSQLを
実行するという処理をバッチで組もうとしています。

ここで最初の、ファイル内の特定の箇所を取り込む
ところからわからず、For文のリファレンスを見ても
なかなかうまくいかず、苦戦しています。
具体的にどうすればいいのか教えていただけませんか?


読み込むデータ(内容は一行のみ)
 ”識別ID”と50字目まで空白とyyyymmddhhnnss形式の日付
1156.
Re:バッチでファイルを読み込んで、取得した文字列をSQL文の条件に設定したい
2006年05月31日(水) 13時32分
ぽてCCP◆fcMgMQA=
FOR文で扱う文字列は、空白によってブロック分け
していると考えてよさそうです。
ですので、その、日付の含まれているブロックを抽出し、
今度はsetコマンドにより、何文字目かを抽出するとよ
いのではないでしょうか。

1157.
Re:バッチでファイルを読み込んで、取得した文字列をSQL文の条件に設定したい
2006年05月31日(水) 19時01分
Hisa
ありがとうございます。

Forでトークンを指定してからSetで文字を分ける方式で取得できました。
SQL作成も過去ログを参考に作成できました。


For /F "tokens=2" %%i in ('type %IF_FILENAME%') Do Set DATA=%%i
set words1=%DATA:~0,8%
set words2=%DATA:~8,6%
echo 送受信年月日 %words1%, 送受信時刻 %words2% >> %LOGFILE%

SET TMPFILE=%TMPPATH%\%Up.sql
ECHO SET ECHO ON>%TMPFILE%
ECHO UPDATE TBL SET 処理区分 = '1' WHERE 処理区分 = '0' AND 送受信年月日 = '%words1%' AND 送受信時刻 = '%words2%';>>%TMPFILE%
ECHO commit;>>%TMPFILE%
ECHO quit>>%TMPFILE%

sqlplus %ORA_USERPASS% @%TMPFILE%

 
 


カテゴリー「SQLとコマンド・プロンプト」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2006年05月31日 11:17に投稿されたエントリーのページです。

ひとつ前の投稿は「バッチファイルでWindowsの種類を判別するには?」です。

次の投稿は「バッチ起動時の引数の個数の数え方」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート