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

解決済みの質問

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

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

細かくいうとWindowsのDOSではなくなるので、
動かなくなると思います。

投稿日時 - 2008-03-17 22:39:37

QNo.3872013

すぐに回答ほしいです

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

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

実現させる方法としては、何かの言語でSQL文を実行するだけのプログラムを作り、それをバッチファイルから呼び出す際にSQL文を与える方法です。
そのようなプログラムを誰かがすでに作成されていて、無料配布されているかどうかまでは検索していません。
このようなものがあれば、可能と言う事は質問者様もわかっている事でしょうが、それをようやく質問として理解した次第です。

投稿日時 - 2008-03-19 11:30:04

補足

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

投稿日時 - 2008-03-26 01:14:04

ANo.4

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

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

回答(4)

ANo.3

Oracleですと、こんな感じでしょうか。

バッチファイルの内容
----
REM DB起動
NET START OracleServiceORCL
REM SQL実行
SQLPLUS user/password@connect @sql
----

補足説明
user:ユーザー名
password:パスワード
connect:接続名
sql:SQLを記述したテキストファイルのファイル名
このテキストファイルの中に自動で動かしたいコマンド(このコマンドと言うのはSQL文と解釈しました)を記述しておいてください。

投稿日時 - 2008-03-18 13:35:34

補足

回答ありがとうございます。
No2に補足を記載させていただきましたが、
sqlに入ったあとの処理をバッチできないかなぁって
いうのが質問内容です。

テキストファイル??実行したいSQLを書いて
それを読み込ませるしかないですよね??
DOS上でいえば、< aaa.txt のようなイメージになると思いますが..

投稿日時 - 2008-03-18 23:24:26

ANo.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
   などを書くことになると思います。
   手元に環境がないので試すことは出来ませんが。

投稿日時 - 2008-03-18 02:03:49

補足

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

投稿日時 - 2008-03-18 23:22:35

ANo.1

DB起動というか、SQLコマンドの起動ですよね?

#DB自体はサービスアプリとしてサーバで起動済みのハズですね。

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

投稿日時 - 2008-03-17 22:46:11

あなたにオススメの質問