シェルスクリプト内でSQL*Plusを実行する

  • 投稿日:
  • by
  • カテゴリ:

例えばOracleの停止シェルを作成する場合など、シェルスクリプト内でSQL*Plusを実行する場合は以下のように書きます。
oracleユーザで実行します。

--------------------ここから--------------------
#!/bin/bash

export ORACLE_SID=hoge

sqlplus /nolog < connect / as sysdba
shutdown immediate
exit
EOF
--------------------ここまで--------------------

『<

『EOF』という文字列自体にはあまり意味はなく、以下のように『AAA』などに変えても問題ありません。

--------------------ここから--------------------
#!/bin/bash

export ORACLE_SID=hoge

sqlplus /nolog < connect / as sysdba
shutdown immediate
exit
AAA
--------------------ここまで--------------------

ただし、終わりの方の『EOF(AAAの場合も)』は行の先頭から書かれていないといけません(スペースなどでインデントしてはいけない)。