使用循环遍历linux中的数组以在sqlplus中执行查询

时间:2013-11-14 18:44:02

标签: arrays shell sqlplus

我有以下代码的shell脚本:

#! /bin/bash

MODEL=$1
declare -a arr=("porsche" "lamborgini" "tesla")

for i in ${arr[@]}
do
sqlplus -s un/pass <<!
set verify off
INSERT INTO tbl1 (par1, par2, par3, datetime_parm)
VALUES('$MODEL', '${arr[i]}', (select count(s) from table i), SYSTIMESTAMP);
COMMIT;
exit;
!
done

由于某种原因,它覆盖了从数组中获取的先前值,我最终只用'tesla'填充表。

有谁知道我做错了什么?

1 个答案:

答案 0 :(得分:1)

我明白了。

#! /bin/bash

MODEL=$1
declare -a arr=("porsche" "lamborgini" "tesla")

for i in ${arr[@]}
do
sqlplus -s un/pass <<!
set verify off
INSERT INTO tbl1 (par1, par2, par3, datetime_parm)
VALUES('$MODEL', '$i', (select count(s) from table i), SYSTIMESTAMP);
COMMIT;
exit;
!
done