2013-02-28 62 views
-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/[email protected] << ENDOFSQL 
    @file.sql 
exit; 
ENDOFSQL; 

我需要在file.sql脚本中使用bash数组[]变量。将变量从sh传递到sql

+1

需要输入/输出示例 – 2013-02-28 13:47:27

回答

0

如果要从输入创建file.sql,则不需要数组。你可以阅读,并在同一写循环

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

这将创造file.sql,然后你就可以传递给在sqlplus

sqlplus owner/[email protected] @file.sql 

你也应该能够完全跳过输入文件和管道输出循环直接到sqlplus

for ((i = 0; i < 3; i++)); do 
    read a 
    echo "From Table[$i]: $a" 
done | sqlplus owner/[email protected] 
+0

嗨,谢谢你的回答。如何将文件传递给sqlplus/plsql? – Dave 2013-02-28 14:13:57

+0

@Dave根据http://serverfault.com/q/87035,你可以在命令行上输入'sqlplus ... @ file.sql'。我相应地更新了我的答案。 – 2013-02-28 14:31:56

+0

现在工作:)谢谢大家:) – Dave 2013-03-05 14:11:44