将变量从sh传递给sql

时间:2013-02-28 13:43:56

标签: sql bash shell

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 []变量。

1 个答案:

答案 0 :(得分: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