• ベストアンサー

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

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

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

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

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

shadow2008
質問者

補足

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

その他の回答 (3)

  • dell_OK
  • ベストアンサー率13% (739/5636)
回答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

  • バッチファイル コマンドプロンプトのウインドウを閉じるには?

    VWD2008のASP.NET開発サーバを起動させるバッチファイルを作成してみたのですが、起動はできたもののコマンドプロンプトのウインドウを閉じることができません。 使用勝手を考えると、バッチをクリック→開発サーバ起動→プロンプトのウインドウを自動で消す、ところまで一括で処理させたいと考えていますが、可能でしょうか? バッチファイルの中身は以下のようになっています。 cd /d c:\Program Files\Common Files\Microsoft Shared\DevServer\9.0 WebDev.WebServer /port:8080 /path:"C:\Documents and Settings\you\My Documents\system\kanri\kanri" /vpath:"/" EXIT

  • コマンドプロンプトのバッチファイルについて教えてください

    お手数ですが教えてください。 コマンドプロンプトでSQL*LORDERを起動するバッチを 作成したいのですが以下の条件がうまくいきません。 「ロードするデータ(テキストファイル)が0件(データなしの0KB) であればSQL*LORDERを起動しない」というのはどのようにすれば 解決できますか? コマンドプロンプトのSET文でTYPE文の結果を環境変数に入力することができませんでした。 また、IF文にDIRの結果を記述できませんでした。 データがない場合はSQL*LORDERを失敗させることは出来ましたが 現在入っているデータが初期化されてしまいました。 なにかいい方法はないでしょうか? よろしくおねがいします。

  • Win7のコマンドプロンプトでバッチファイル自動終了は?

    Win7のコマンドプロンプトでバッチファイル自動終了は? Windows7上でバッチファイルを実行させます。 このとき、バッチファイルの中身は、Skypeの起動です。 Skype起動はするのですが、コマンドプロンプトの画面は開いたままです。 そして、Skypeを終了(システムトレイから完全終了)させると、コマンドプロンプトも閉じます。 Skype起動中にコマンドプロンプトを手動で終了させても大丈夫なのですが、いちいち面倒です。 なにかいい手はありませんか? ちなみに、なぜ、バッチファイルでSkypeを起動させるかというと、USBメモリーとかでSkypeを持ち運ぶためです。 バッチファイルの中身です。 Skype.exe /datapath:"DataFile" /removable バッチファイルは「Skype.exe」と同じディレクトリにあります。 ショートカットで作れば問題ないのですが、そうすると、USBのドライブレターが変わった時に対応できなくなるので、相対ディレクトリ指定のできるバッチファイルで起動をさせています。

  • コマンドプロンプトについて

    あるAPを自動起動させいのですが、普通にスタートアップにそのAPのショートカットを設定すると 「ほかのプログラムがビジー状態のため、この作業を完了できません。[切り替え]を選んでビジー状態のプログラムに移り、問題を解消してください。」 と出てきて、まともに起動できませんでした。そこで、sleepを入れてAPの立上げ時間を遅らせようと思い、バッチファルを作りました。 でも、バッチファイルを走らせるとコマンドプロンプトのWindowがひらくんですよね。 これをデスクトップ上に開かないでバッチファイルを起動する方法はありませんか? ショートカットの場合、プロパティを開いてリンク先に「/AutoWait」とすると、デスクトップにデカデカと表示されずに、ツールバーにこっそりアイコンができるじゃないですか。そんな感じでコマンドプロンプトが起動してバッチファイルが走る方法を教えてください。

  • DOSコマンドについて

    ご教授お願いします。 Windows Server 2003において、 DOSコマンドによるバッチを作成するにあたり ファイルを圧縮する設定/方法を教えて頂けないでしょうか? 恐れ入りますが、宜しくお願いします。

  • バッチ処理時のコマンドウィンドウについて

    XPで、バッチファイル(.bat)作成して実行させると、コマンドウインドウが現れ、各コマンドが順次実行されます。バッチ処理終了後にコマンドウインドウが自動的にクローズされますが、これをそのまま保持することはできないのでしょうか?または、ウインドウの表示内容をファイルに落としておくということはできないのでしょうか? よろしくお願いします。

  • バッチ終了時にDOS窓を閉じるコマンド

    自作バッチについて質問があるのですが、 バッチ終了時にDOSプロンプトを自動的に閉じる方法を教えて下さい。 以下の方法は知っているのですが↓ ------------------------------------------------------------ バッチのプロパティ画面の「プログラム終了時にウィンドウを閉じる」を チェックする ------------------------------------------------------------ 上記のようなやり方ではなく、バッチファイルの中に直接コマンドを書いて 設定する方法を教えて下さい。

  • File Stationからコマンドでダウンロード

    QNAP NAS のファイルマネージャーFile Stationのサーバから DOSコマンドを使ってファイルをダウンロードすることはできますか? 毎日起動するバッチ処理に組み込みたいのですが・・・。

  • windows2000のコマンドプロンプトのショートカット毎のバッチファイルの自動実行

    お世話になります。 現在、コマンドプロンプトのショートカットを起動した後、 物によって別々のバッチファイルを実行しています。 (複数のディレクトリにショートカットがあります) そこで、ショートカット毎に自動実行されるバッチファイルを 指定したいのですが、どのようにすればいいのか分かりません。 windows98の頃のMS-DOSプロンプトの頃は、 ショートカットのプロパティを見ると、 「バッチファイル」という項目があって、 ショートカット毎に実行できるバッチファイルが 指定できたと思いますが、 windows2000のコマンドプロンプトの場合は どのように行えばいいのでしょうか?

  • コマンドプロンプトについて教えてください

    お手数ですが教えてください。 コマンドプロンプトでSQL*LORDERを起動するバッチを 作成したいのですが以下の条件がうまくいきません。 「ロードするデータ(テキストファイル)が0件(データなしの0KB) であればSQL*LORDERを起動しない」というのはどのようにすれば 解決できますか? コマンドプロンプトのSET文でTYPE文の結果を環境変数に入力することができませんでした。 また、IF文にDIRの結果を記述できませんでした。 データがない場合はSQL*LORDERを失敗させることは出来ましたが 現在入っているデータが初期化されてしまいました。 なにかいい方法はないでしょうか? よろしくおねがいします。