0

我编写了一个小的 bash 脚本来从表中删除一些行并使用 sqlplus 删除一些用户。当我将代码放入函数中时,它会给出“语法错误:文件意外结束”错误消息。下面是代码。请让我知道如何解决它。

function reset_db
{
sqlplus user1/password1@${input} << eof
set timing off
set serveroutput on size 10000
set feedback off
spool logfile_$input.out

delete from table1 where component = 'XYZ';
delete from table2 where component = 'XYZ';
commit;
exit
eof

sqlplus dba_usr/dba_password@${input} << eof
set timing off
set serveroutput on size 10000
set feedback off
spool logfile_$input.out

drop user ABC cascade;
drop user DEF cascade;
drop user HIG cascade;
commit;
exit;
}
4

1 回答 1

0

您在第二个命令eof的末尾错过了。sqlplus改变这个:

exit;
}

对此:

exit;
eof
}

顺便说一句,您实际上不需要分别调用sqlplus两次;您可以使用它的connect命令断开一个连接并打开一个新连接:

function reset_db
{

sqlplus user1/password1@${input} << eof

set timing off
set serveroutput on size 10000
set feedback off
spool logfile_$input.out

delete from table1 where component = 'XYZ';
delete from table2 where component = 'XYZ';
commit;

connect dba_usr/dba_password@${input}

drop user ABC cascade;
drop user DEF cascade;
drop user HIG cascade;

eof

}
于 2013-02-21T22:07:36.513 回答