0

我正在尝试创建一个 KSH 脚本,在该脚本中我试图创建一个数组,该数组将保存包含字符串值列表的文本文件的内容,并将该数组发送到 KSH 脚本中的 SQL 函数。这是我到目前为止所做的:

export text_file=$HOME/values.log
while read **line**; 

       do
       CmResTypUpd 
   done < $text_file

ResTypUpd 执行以下操作:

CmResTypUpd () {
            sqlplus -s $db_user/$db_pass@$db_inst <<EOF

            SET VERIFY OFF
            SET HEADING OFF
            SET PAGESIZE 200
            SET LINESIZE 200
            SET FEEDBACK OFF

            update My_Table set Column_Field_To_Change='NEW_VALUE' where IND1_COLUMN_VALUE='SomethingSomething' and IND2_COLUMN_VALUE='**$line**';
            commit;
   exit;

    EOF

            }

我得到的是脚本挂起并且什么都不做。

此外,脚本应该能够跨平台运行,即在任何UnixLinux.

4

1 回答 1

0

您需要将您的行作为参数传递给函数

export text_file=$HOME/values.log 
while read line; do CmResTypUpd "$line"; done < $text_file

你的功能:

CmResTypUpd () {
    [...]
    update My_Table set Column_Field_To_Change='NEW_VALUE' 
    where IND1_COLUMN_VALUE='SomethingSomething' and IND2_COLUMN_VALUE='$1';
    [...]
}

而且变量**line**应该是line

于 2013-03-18T15:23:10.510 回答