0

次のコードを含むシェルスクリプトがあります。

#! /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」のみを入力することになります。

誰かが私が間違っていることを知っていますか?

4

1 に答える 1

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
于 2013-11-14T19:00:14.310 に答える