シェルスクリプトからOracleに接続する方法をサンプルに纏めました。
Oracleとの接続にはsqlplusを利用します。
DB切断時にエラーが発生していないか確認する方法も纏めておきました。
connectsqlplus.sh
#!/bin/sh
. /home/batch_user/.bashrc
# 終了コード:エラー
RESULT_CD_ERR=255
# ログファイル
CURRENT=$(cd $(dirname $0) && pwd)
DB_SYNC_LOG=$CURRENT/log/connectsqlplus.log
# DB接続
CONNECT_DB="connect $ORACLE_USER/$ORACLE_PASS@$DB_HOST:$DB_PORT/$DB_NAME"
# コミット文
COMMIT_CMD='commit;'
# SQLファイル実行
EXEC_SQLFILE="@$SQLFILE"
# DB接続 SQLPLUS ここから
sqlplus -s /nolog <<EOF >> $DB_SYNC_LOG
--エラー時の例外処理
whenever oserror exit $RESULT_CD_ERR
whenever sqlerror exit $RESULT_CD_ERR
-- DB接続
$CONNECT_DB
$EXEC_SQLFILE
$COMMIT_CMD
quit
EOF
# DB切断 SQLPLUS ここまで
# DBエラーチェック
if test $? = $RESULT_CD_ERR
then
echo "`date '+%Y/%m/%d %T %N'` FATAL DB接続時にエラー発生:$RESULT_CD_ERR]"
echo "`date '+%Y/%m/%d %T %N'` FATAL DB接続時にエラー発生:$RESULT_CD_ERR]" >> $DB_SYNC_LOG
echo '------------------------------------------------------------------' >> $DB_SYNC_LOG
exit $RESULT_CD_ERR
fi