我准备了一个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
答案 0 :(得分:0)
感谢您的回复。
我做了以下两个步骤来解决问题 - 1. dos2unix TestData.csv - 虽然我在UNIX中创建了这个文件,但也做了这个。 2. @cdark
建议的文件末尾的新行的问候, dhananjay