シェルスクリプト内でSQL*Plusを実行
最終更新日:2020/11/01 | 公開日:2013/06/29
目次
概要
Oracleインスタンスの起動・停止シェルを作成したい場合など、 シェルスクリプト内でSQL*Plusを起動してSQLやOracleのコマンドを 実行する方法を紹介します。
構成
サーバ構成
OSバージョン
Red Hat Enterprise Linux 5.9 64bit
※バージョンが異なってもBashであれば書き方は同じです。
パッケージ一覧
必要な追加パッケージはありません。
書き方
『<<EOF』から『EOF』の間に書かれている3行は『sqlplus /nolog』コマンドへ標準入力として渡されます。 『EOF』という文字列自体にはあまり意味はなく、『AAA』などに変えても問題ありません。 ただし、終わりの方の『EOF(AAAの場合も)』は行の先頭から書かれていなければなりません(スペースなどでインデントしてはいけない)。 例ではSIDは『hoge』とします。
# cd /tmp/ # touch oracle_stop.sh # chmod 755 oracle_stop.sh # chown oracle:oinstall oracle_stop.sh # vi oracle_stop.sh
ファイル名: /tmp/oracle_stop.sh
#!/bin/bash export ORACLE_SID=hoge sqlplus /nolog <<EOF connect / as sysdba shutdown immediate exit EOF exit 0;
作成したシェルはoracleユーザで実行します。
# su - oracle $ /tmp/oracle_stop.sh