テキストファイル内のSQL文実行

解決


みやっち  2007-05-21 06:17:12  No: 136452

テキストファイル内に書かれているSQL文を読み込みSQL文を実行したりしているのですが、

・テキストファイル内にSQL文のみ書かれている場合
SQL文が実行できる

・テキストファイル内にSQL文以外(変数宣言とか)が書かれている場合
ファイル内に、変数宣言やIF文とかが書かれています。
そのまま読み込み実行は出来ないと思うんですが可能でしょうか?

もし無理な場合、別のやり方があればお教えください。


ささき  2007-05-21 11:11:31  No: 136453

誰でも思いつきそうな話で恐縮ですが
読み込んだものを
(IF分など無いか)解析して実行する
と言ったことが考えられるかと思いますが
出来ない理由は何かあるのでしょうか?


もげ  2007-05-23 04:12:48  No: 136454

SQL文はSQLの文法にのっとらなければ実行できません。
>変数宣言やIF文とかが書かれています。

そういう自分勝手仕様部分は、
ファイルに書く前、もしくは読んだときに
自分勝手仕様に基づいてSQL文に変換する必要があるでしょう。

たとえば、
"SELECT * FROM TABLE01 WHERE %1 = '%2'"
みたいに穴埋めするSQL文データを用意して、
実行時にReplace関数等で実値を埋め込むとか。


みやっち  2007-05-23 06:03:39  No: 136455

やはり文法にのっとらないとダメですか。

現状、バッチでそのSQL文等書かれているファイルを実行してるのですが
エラーがわからないためVBに変更することにしました。

VBにコードで書くのがやはりベストなんですかね?


もげ  2007-05-23 17:32:06  No: 136456

何がベストかは、要件/ミッションの重要度/環境/スキル/予算等で判断する必要がありますが、
プログラム組んで行うのも手段のひとつでしょう。
バッチならVBScriptでもよいかもしれないです。
ちなみに、DBは何でしょうか?
OracleやSQLServer等まともなRDBMSであれば、
ストアドプロシージャで組む方法もあるでしょう。


みやっち  2007-06-11 07:29:58  No: 136457

DBはSQLServerを使ってます。
いろいろ試してみたんですが、ストアドプロシージャで組む事にしました。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加