こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

mysqlのloadコマンドに引数をセットするバッチの作成

mysqlのloadコマンドに引数をセットするバッチの作成


データ移行でロードするファイルが数多くあり
バッチ処理(param.bat)で実行できるようにしたいのですが、
SQLスクリプト(param.sql)にうまく引数を渡すことができません。
引数1にデータ:aaa.txt
引数2にテーブル:test_tbl

どうかアドバイスいただけないでしょうか。
宜しくお願いいたします。
OS:Windows XP

【実行時】
c:temp>param.bat aaa.txt test_tbl

【作成したファイルの記述】
param.bat
-------
mysql test1 -u user1 -puser1 < param.sql %1 %2


param.sql
-------
LOAD DATA INFILE '&1' INTO TABLE &2 FIELDS TERMINATED BY ',' ESCAPED BY '\\' LINES TERMINATED BY '\r\n';
exit;

投稿日時 - 2010-08-26 17:10:58

QNo.6137301

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

テストしてませんが、これでどうでしょう。

param.bat
-------
(
echo LOAD DATA INFILE '%1' INTO TABLE %2 FIELDS TERMINATED BY ',' ESCAPED BY '\\' LINES TERMINATED BY '\r\n';
echo exit;
) | mysql test1 -u user1 -puser1


投稿日時 - 2010-08-26 17:10:58

投稿日時 - 2010-08-26 20:11:54

お礼

回答していただき、大変助かりました。
どうもありがとうございます!
exit;ではエラーが出たのですがこれをとるとエラーがでなくなりました。

もう少しお伺いさせてください。
このロード処理結果も表示させたいのですが、
select count(*) from %2;
はどこに記述すればうまく実行できるのでしょうか。

お忙しいところ大変恐縮ですが、ご教示頂けると幸いです。
宜しくお願いいたします。

投稿日時 - 2010-08-27 10:12:51

あなたにオススメの質問