0

テーブルからいくつかの行を削除し、sqlplus を使用して一部のユーザーを削除する小さな bash スクリプトを作成しました。コードを関数に入れると、「構文エラー:予期しないファイルの終わり」というエラーメッセージが表示されます。以下はコードです。修正方法を教えてください。

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

2 番目のコマンドeofの最後にthe がありません。sqlplusこれを変える:

exit;
}

これに:

exit;
eof
}

sqlplusちなみに、実際には2 回別々に呼び出す必要はありません。そのコマンドを使用して、connect1 つの接続をドロップし、新しい接続を開くことができます。

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 に答える