SQLクエリ用に複数の変数をスクリプトに渡す

SQLクエリ用に複数の変数をスクリプトに渡す

info_codeというスクリプトがあります。

#!/bin/ksh

if [ $# -eq 0 ] ;then
  echo "Enter code : \c"
  read code
  echo ""
else
  code=$1
fi

code=`echo ${code} | tr '[a-z]' '[A-Z]'`

echo "select * from table 
where request_no=|$code|

info_codeを実行するときは、最後に要求したコードを変数に入れる必要があります。毎回複数のコードを挿入したいです。 request_no 列は varchar です。

答え1

おそらく次のようなものが欲しいでしょう。

#!/bin/ksh
typeset -Au codes
read -rA codes?"Enter codes: "
IFS=,
sql="select * from table where request_no in (${codes[*]})"
echo "$sql"

実行は次のとおりです。

Enter codes: foo bar baz
select * from table where request_no in (FOO,BAR,BAZ)

残りの値を正しく引用するのは練習です。

関連情報