语法错误:在块内执行查询时意外结束文件

时间:2016-09-20 07:22:34

标签: bash unix

我准备了一个shell脚本,它从文件中获取6个char,并在while循环中使用sql insert查询插入特定记录(因为文件中的记录数量很大)。

运行脚本后,我收到以下错误 - ./TestScriptFor.sh:line 40:语法错误:意外的文件结尾

#!/bin/bash

varSIAREQUESTID=$1
varCINAME=$2
#varWORDLENGTH=$3
#DB connection parameter


DBUSER='#USERNAME#'
DBUSERPASSWORD='#PWD#'
DB='oracle'
MYDB='#CONNECTIONSTRING#'

OLDIFS=$IFS

# while loop
while IFS= read -r -n6 LOCATIONID
do
    #insert into database 
    sqlplus -s ${DBUSER}/${DBUSERPASSWORD}@${MYDB} <<EOT
    set linesize 32767
    set feedback off
    set heading off
    insert into nbn_sia_locationids (siarequestid,locationid,ciname) values('$varSIAREQUESTID','$LOCATIONID','$CINAME');
    exit
EOT
        echo  "$LOCATIONID"


    # display one character at a time

done < TestData.csv
IFS=$OLDIFS

1 个答案:

答案 0 :(得分:0)

感谢您的回复。

我做了以下两个步骤来解决问题 - 1. dos2unix TestData.csv - 虽然我在UNIX中创建了这个文件,但也做了这个。 2. @cdark

建议的文件末尾的新行

的问候, dhananjay