SQLクエリの出力を変数に代入

SQLクエリの出力を変数に代入

Oracleデータベースに接続し、問合せをトリガーして出力を変数に割り当てていますが、変数値をエコーすると正しく印刷されません。

count=`sqlplus -s $configuser/$configpass@$ORACLE_SID <<END
           set pagesize 0 feedback off verify off heading off echo off;
           select max(cust_id) from cutomers
           exit;
           END`
           echo $count

クエリは、データベースでトリガされたときに正しい結果を返します。ただし、「count」変数の値が正しくありません。

ベストアンサー1

here-docを終了する単語は行の唯一の文字でなければなりません。インデントは許可されていません。また、$()代わりに逆引用符を使用してください。ネスト可能です。

count=$(sqlplus -s $configuser/$configpass@$ORACLE_SID <<END
       set pagesize 0 feedback off verify off heading off echo off;
       select max(cust_id) from cutomers
       exit;
END
)
echo $count

http://www.gnu.org/software/bash/manual/bashref.html#Here-Documents

おすすめ記事