SQL クエリからパラメーター (数値) を取得し、それを変数に割り当てるこのスクリプトがあります。2 つのオプションがあります。SQL クエリが値を見つけてから、スクリプトが "the billcycle number is $v_bc" をエコーするか、値が見つからず、"no billcycle parameter found" をエコーすることを前提としています。if条件に問題があります。
これは私が思いついたものです:
#!/bin/bash
v_bc=`sqlplus -s /@bscsprod <<EOF
set pagesize 0
select billcycle from bc_run
where billcycle not in (50,16)
and control_group_ind is null
and billseqno=6043;
EOF`
if [ -z "$v_bc" ]; then echo no billcycle parameter found
else echo "the billcycle parameter is $v_bc"
fi
billseqno=6043 の場合、v_bc=25 を意味し、スクリプトを実行すると、「billcycle パラメータは 25 です」という結果になります。それが私がやろうとしていることです。上記のSQLクエリによると、billseqno = 6042を設定すると、v_bcは値を取得しないため、「billcycleパラメーターが見つかりません」とエコーします。代わりに私は得る
「ビルサイクルパラメータは
行が選択されていません。」
助言がありますか ?
どうもありがとうアサフ。