• 締切済み

KORNシェルでSQLスクリプトの自動実行する方法?

KORNシェルを使用して、OracleのSQLスクリプト(統計情報取得)を実行するシェルスクリプトを作成し、毎日自動運用しようと考えています。 しかし、シェルスクリプトやSQLスクリプトを使用/作成するのははじめてのため まず、可能か否かが分かりません。可能であれば、方法についてご教授願います。 また、SQLスクリプトに引数を渡すことが出来るのでしょうか? SNAPSHOT IDを渡したいと思っているのですが... よろしくお願いいたします。

みんなの回答

  • melkattz
  • ベストアンサー率0% (0/0)
回答No.2

うろおぼえなので、あんまり自信ないけど、 sqlplus へのヒアドキュメントでやってました 以下、サンプル #!/bin/ksh logfile=logfile.txt sqlplus -s user/pass << _EOF_ | tee $logfile ANALYZE TABLE tablename COMPUTE STATISTICS; _EOF_ if [ $? = 0 ] ; then exit 0 else exit 1 fi

  • yakumon
  • ベストアンサー率35% (22/62)
回答No.1

結論から言うと シェルにパラメータを渡すことは可能です。 またシェルの自動実行もcronを使えば可能です。 参考URLをご確認ください。 http://publibn.boulder.ibm.com/doc_link/Ja_JP/a_doc_lib/aixuser/usrosdev/korn_shell.htm http://publibn.boulder.ibm.com/doc_link/Ja_JP/a_doc_lib/cmds/aixcmds1/cron.htm

参考URL:
http://publibn.boulder.ibm.com/doc_link/Ja_JP/a_doc_lib/aixuser/usrosdev/korn_shell.htm,http://publibn.boulder.ibm.com/d

関連するQ&A

  • BシェルでSQL文を実行

    【OS:AIX】 あるユーザーでCRONを組んでおり、オラクルのプレシジャを読み込ませるシェルプログラムをCシェルで組んでありました。 それをとある理由でBシェルに変更させてチェックしております。 ところがBシェルに変更してから以下のsqlplus文で失敗してしまいます。 ただ、単独でshファイルを実行するときは、SQL文も読み込んでくれて問題なく正常に終了するのですが、crontabで実行させるとSQL文を読み出すところで失敗してしまいます。 何かいけないところはありますでしょうか # SQL*Plusを呼び出しデータ作成 sqlplus ID/PASSWORD@SID < $HOME/script/data.sql ユーザアカウント自体はデフォルトでKシェルで作成されたユーザです。

  • シェルからSQLスクリプトを実行する方法を教えて下さい。

    シェルからSQL/Plusを起動し、SQLスクリプトを実行する方法を教えて下さい。 #! /bin/ksh sqlplus ユーザ/パスワード @test.sql exit 0 にすると、ログインユーザを途中で 聞いてきてきます。 因みに、test.sqlは、単なるdesc テーブル名 のみ記載。

  • シェルスクリプトからSQL文発行

    こんにちは 今シェルスクリプトを作成し、oracleに対して、SQL文を発行したいのですが、ユーザーパスワードを入れた時点で処理が止まります シェルスクリプトからoracleに対して、DROP TABLEを行いたいのですが、この処理は可能ですか? 可能であれば、実行した際のログも保持し、エラーがあった場合の処理を行いたいです。 ご存知の方いらっしゃいましたらご教授お願いいたします 現在のソース: sqlplus ユーザー名/パスワード # ここまではうまくいきますが、ここで処理がとまります drop table テーブル名

  • シェルスクリプト 引数の引渡しについて

    こんにちは。現在シェルスクリプトを勉強中なのですがどうしてもわからないことがあり投稿させていただきました。 シェルスクリプトにて作成した引数(引数にスペースがある場合)を別のシェルスクリプトへ渡そうとしたときにうまく引き渡せなくて困っています。 詳しくは以下のスクリプト参照願います。 (1)引数作成のスクリプト _/_/_/_/_/_/_/_/_/_/_/_/ #!/bin/sh a="HELLO" b="\"WOW WOW\"" test.sh $a $b _/_/_/_/_/_/_/_/_/_/_/_/ (2)test.sh _/_/_/_/_/_/_/_/_/_/_/_/ #!/bin/sh echo $1 echo $2 echo $3 _/_/_/_/_/_/_/_/_/_/_/_/ これを実行すると $1=HELLO $2="WOW $3=WOW" となってしまいます。 これを $1=HELLO $2=WOW WOW $3=NULL(空欄) となるようにシェルスクリプトで作成することはできないのでしょうか? ご教授よろしくお願いします。 よろしくお願いします。

  • 適切なシェルスクリプトの実行方法について

    シェルスクリプト内でi18nの再読み込みをするために . /etc/sysconfig/i18n と記述するとシェルスクリプト終了後にi18nの内容が反映されていません。 シェルスクリプト自体は ./shell1.sh という形で実行しています。 質問1:このようになるのは「./shell1.sh」と実行したスクリプトは 新たに作成された子プロセスによって実行される為、スクリプトが終了し 親プロセスに戻っても親自身は再読み込みを行なっていないから、という認識で間違いないでしょうか。 質問2:この現象の回避策として「source shell1.sh」とsourceコマンドで シェルスクリプトを実行する方法を試してみました。 実際に上手くいったのですが、「set -e」を使っているとエラー時に ログアウトしてしまうなどの弊害もありました。 他に適切な回避策に問題はないでしょうか。 ご存知のかた、お手数ですがご解答のほど宜しくお願い致します。

  • シェルスクリプトの問題が分かりません。

    引数に複数の整数を与えたときに、それらの和を計算するシェルスクリプトを作成する。具体的には $ ./sum.sh 1 2 3 4 5 15 のようになるシェルスクリプトである(引数の個数は可変とする)。 どうしてもわかりません。どうか、よろしくお願いします。

  • ACCESSからSQLスクリプトを実行する方法

    SQL Serverのスクリプト生成で作成した複数のSQLスクリプトファイル(.sql)を ACCESSからSQL Serverに接続して実行したいのですが どのようにすれば出来るでしょうか? バッチを使えば出来そうですが、今回はACCESSのみで実現できればと思っています。 ※ACCESS2003とSQL Server2000を使用しています。 よろしくお願いします。

  • PL/SQLで実行したSQLのログの取得について

    ASP(ActiveServerPage)より、PL/SQLのFunctionを実行し、Oracleの複数のTABLEを更新しようとしています。 ASPから実行する際には、引数を渡し、その引数をSQL実行の条件としていますが、実際に実行されたSQL文のログを取得したいのですが、どうしたらよいでしょうか? 何か良い方法をお教えいただけますよう、よろしくお願いいたします。 [実行環境] DB:Oracle8i

  • 簡単なシェルスクリプトを見てください。

    次のようなシェルスクリプトを作成しました。 #!/bin/sh echo [$1] awk '/"0312345678"/ {print}' /test > /test1 awk '/$1/ {print}' /test > /test2 のように簡単なスクリプトです。 $ sample \"0312345678\" で実行させたら、echo では"0312345678"に出力されます。 しかし、test1にはちゃんと結果が入っていますが、test2は空のファイルです。 なぜ、結果が違うのですか? 実行時、引数を渡す方法で、test1と同じ結果を得たければ、どうすればいいのですか?

  • シェルスクリプト 自身のファイルパスを取得する方法

    基本的なことかもしれないのですが、教えて下さい。 シェルスクリプトをLinuxで作成しています。 シェルスクリプトを実行して、実行したスクリプトまでの絶対パスを取得したいのですが、方法がわかりません。 いろいろ調べて、 dirname $0 という方法で出来るような記述も見つけたのですが、$0ではスクリプト名を取得することしか出来ず、ファイルパスを取得することが出来ませんでした。 OS : Linux カーネル : 2.6 です。 他に必要な情報があれば教えて下さい。 よろしくお願いいたします。

専門家に質問してみよう