• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:OSQLからスクリプトファイルへの引数の渡し方)

OSQLからスクリプトファイルへの引数の渡し方

このQ&Aのポイント
  • バッチファイルを使用してOSQLからスクリプトファイルへ引数を渡す方法について教えてください。
  • 具体的には、バッチファイルを実行時に入力された日付をOSQL文の中に記述しているスクリプトファイルへ渡し、スクリプトファイルにあるSQL文を実行する方法を知りたいです。
  • また、バッチからOSQLへの引数の渡し方や、その他の良い方法があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

SQL Server 2005のsqlcmdであれば、-vオプションでスクリプトファイルに値は渡せますが、osqlでは難しいんじゃなかったかなと思います。 そうすると、-Qオプションを使うしかないので、選択肢は2つです。 1)-QオプションにSELECT文を使う osql -S インスタンス -U ユーザ名 -P パスワード -d DB名 -Q"SELECT * FROM uriage WHERE 日付='%hidulk%'" 2)ストアドプロシージャを1つ書いて、それを実行する CREATE PROCEDURE ap_selecturiage (@hiduke varchar(8)) AS BEGIN SET NOCOUNT ON SELECT * FROM uriage where 日付=@hiduke END osql -S インスタンス -U ユーザ名 -P パスワード -d DB名 -Q"EXEC ap_selecturiage '%hiduke%'" 後者のメリットは実行前に型チェックができることと、複雑なクエリでも実行可能なことですかね。

naka5322
質問者

お礼

お礼が遅くなり申し訳ありません。 やっぱりスクリプトへ値を渡すことはできないんですね。 ストアドは事情により作成できない為、1)案で検討させて頂きます。 ありがとうございました。

関連するQ&A