• ベストアンサー

コマンドプロンプトのバッチについて

WindowsのDOSなどのコマンド処理をするバッチファイルについて ですが、DOSからDB(OracleやSQL Serverなど)を起動させるバッチがあって、DBに入ってからSQLのコマンドなどを自動でさせるバッチって 何か方法はないのでしょうか?? DOS → DB起動後、自動でコマンドで動かしたいです。 細かくいうとWindowsのDOSではなくなるので、 動かなくなると思います。

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

  • ベストアンサー
  • dell_OK
  • ベストアンサー率13% (773/5736)
回答No.4

質問の意味は、.bat(あるいは.cmd)ファイルのDOSから起動されるファイルの中にSQL文を記述したいと言う事でしょうか。 それはできそうにありません。 DOSの応答ファイルのように @ を使って読み込ませるしかないようです。 バッチファイルを実行する度にそのバッチファイルの内容が異なるからそのようなご希望でしたら、 バッチファイルを作成するかわりに読み込ませるファイルを作成すればいいだけですから、 たぶん別の理由で、バッチファイル1つだけで完成されたいのですね。 実行したいSQL文群が毎回異なると言うのでなければ、PL/SQLでプログラム化した状態のものを呼び出せばいいのですが、 それさえも、@を使って呼び出すSQL文を読み込まないといけません。 実現させる方法としては、何かの言語でSQL文を実行するだけのプログラムを作り、それをバッチファイルから呼び出す際にSQL文を与える方法です。 そのようなプログラムを誰かがすでに作成されていて、無料配布されているかどうかまでは検索していません。 このようなものがあれば、可能と言う事は質問者様もわかっている事でしょうが、それをようやく質問として理解した次第です。

shadow2008
質問者

補足

ありがとうございます。 私のスキルではまだできそうもありませんので、 考えます。

その他の回答 (3)

  • dell_OK
  • ベストアンサー率13% (773/5736)
回答No.3

Oracleですと、こんな感じでしょうか。 バッチファイルの内容 ---- REM DB起動 NET START OracleServiceORCL REM SQL実行 SQLPLUS user/password@connect @sql ---- 補足説明 user:ユーザー名 password:パスワード connect:接続名 sql:SQLを記述したテキストファイルのファイル名 このテキストファイルの中に自動で動かしたいコマンド(このコマンドと言うのはSQL文と解釈しました)を記述しておいてください。

shadow2008
質問者

補足

回答ありがとうございます。 No2に補足を記載させていただきましたが、 sqlに入ったあとの処理をバッチできないかなぁって いうのが質問内容です。 テキストファイル??実行したいSQLを書いて それを読み込ませるしかないですよね?? DOS上でいえば、< aaa.txt のようなイメージになると思いますが..

  • auty
  • ベストアンサー率58% (284/486)
回答No.2

oracleに関してですが、 1. まず同じく、「DB起動」を「sqlplus起動」と解釈してみます。 以下のページを参考にしてみてください。 http://oshiete1.goo.ne.jp/qa1907064.html ・ login.sqlは、sqlplusを起動するときのディレクトリに作成する。そのディレクトリから起動するときに使われます。 ・ glogin.sqlの場合は、どのディレクトリから起動するときも使われます。たとえば、       C:\oracle\product\10.1.0\Db_1\sqlplus\admin に保存します。 2. 「DB起動」をそのまま受け取って、サーバマシンで、管理者の権限で実行するとして、    1.の方法を適用してうまく行くかどうかです。    バッチファイルには、        sqlplus /nolog    login.sqlには、        connect / as sysdba        startup    などを書くことになると思います。    手元に環境がないので試すことは出来ませんが。

shadow2008
質問者

補足

回答ありがとうございます。 書き方がわるかったみたいで.. 「sqlplus起動」まではできております。 sqlに入ってからのselect文などのコマンドって バッチでできないかっていうのが知りたいです

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

DB起動というか、SQLコマンドの起動ですよね? #DB自体はサービスアプリとしてサーバで起動済みのハズですね。 SQLコマンドの起動オプションに「入力をコンソールでなくファイルから読み込む」がありませんか?私はSQLServerではそうやって自動化(バッチをタクススケジューラに登録して自動実行)してますが・・。

関連するQ&A

専門家に質問してみよう