sqlplusのsqlcodeをshの終了コードへ返す

test.sh

#!/bin/sh

$ORALE_HOME/bin/sqlplus /nolog @hoge.sql
SQLCODE=$?
if [ $SQLCODE -ne 0 ]; then
    echo "ERROR!!! sqlcode[$SQLCODE]"
    exit -1
fi

hoge.sql

conn user/password@foo

select aaaaaaaaaaaaaaaaaaaaaa;

exit

このhoge.sqlだと、test.shのSQLCODE=$?でsqlcode:204は取得出来ません。
取得する為には、hoge.sqlを以下のように変更します。

conn user/password@foo

whenever sqlerror exit sql.sqlcode

select aaaaaaaaaaaaaaaaaaaaaa;

exit

これで、test.shを実行すると
ERROR!!! sqlcode[204]
が出力されます。