以下脚本给我一个错误。基本上我试图删除我从第一个查询中获得的记录。我把它们放在一个文本文件中,格式化它们并在删除操作中使用它们。
执行脚本后,我收到以下错误: - :第5行:第27行的语法错误:`<<'不匹配的
答案 0 :(得分:0)
无法分辨,因为您转储的代码未格式化,但我的第一个猜测是您在here document中的EOF前面有前导空格。
这应该有用(注意EOF前面没有前导空格。:
sqlplus -s $dbcreds << EOF > output.txt
SET SERVEROUTPUT OFF
select empname from emp where dept_no=123;
EOF
if [ -s "output.txt" ]
then
echo " Found the below employees....Deleting them from Database ..............!!!! \n"
cat output.txt
sed "s/(.*)/'\1'/" output.txt| tr '\n' ','|sed 's/.$//' >final_employees.txt
while read line
do
sqlplus -s $dbcreds <<EOF
SET SERVEROUTPUT OFF
Delete from emp where empname in ($line);
EOF
done < final_employees.txt
else
echo " No employees found....!!!"
fi