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
クエリは、データベースで実行されると正しい結果を返します。しかし、「カウント」変数の値が正しくありません。
終了するhere-doc Wordは行の唯一の文字でなければなりません。インデントは許可されません。また、バックティックの代わりに$()
を使用してください。バックティックはネスト可能です。
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
OUTPUT=$( ${OracleClientHome}/sqlplus -S user/pass@database <<EOF
set pagesize 0 linesize 32767 feedback off verify off heading off echo off
select a1.id || '|' ||
a1.stmt_begin_date || '|' ||
a1.stmt_end_date || '|' ||
a1.status || '|' ||
a1.total_recs
from acct_stmt_file a1
where a1.actp_cd = 'HSA'
and a1.stmt_begin_date =trunc(sysdate);
exit;
EOF
)
echo -e "\n${OUTPUT}"