-1
declare -a array[2]
for  (( i=0; i<3; i++ ))
do
read array[$i]
done

for  (( n=0; n<3; n++ ))
do
echo  -e "From Table[$n]: ${array[$n]}\n " ;
done

sqlplus owner/pass@db << ENDOFSQL
    @file.sql
exit;
ENDOFSQL;

file.sql スクリプトで bash array[] 変数を使用する必要があります。

4

1 に答える 1

0

入力から作成する場合file.sqlは、配列は必要ありません。同じforループで読み書きできます

for (( i = 0; i < 3; i++ )); do
    read a
    echo "From Table[$i]: $a"
done >file.sql

これにより が作成さfile.sqlれ、それを sqlplus に渡すことができます

sqlplus owner/pass@db @file.sql

また、入力ファイルを完全にスキップして、for ループの出力を直接 sqlplus にパイプすることもできます。

for (( i = 0; i < 3; i++ )); do
    read a
    echo "From Table[$i]: $a"
done | sqlplus owner/pass@db
于 2013-02-28T14:06:02.573 に答える