宣言ブロックでエラーが発生します。コードの下に貼り付けました。
function XYZ
{
        sqlplus -s $DB_USR/$DB_USR$pwd_suffix@$SID
        set timing off
        set serveroutput on size 10000
        set feedback off
        spool logname_$sid.out
        variable ex_code number
        whenever sqlerror exit 1
        begin
                :ex_code :=0;
        end;
        /
        declare
         l_cnt number := 0;
         l_sql varchar2(4000) := '';
         l_tmp_name varchar2(100) := '';
    some more code...
}
./XYZ.sh:26行目:予期しないトークンの近くの構文エラー `('
./XYZ.sh:26行目:` l_sql varchar2(4000):='';'
-bash-3.2 $
誰かが問題の原因を教えてもらえますか?