0

宣言ブロックでエラーが発生します。コードの下に貼り付けました。

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 $

誰かが問題の原因を教えてもらえますか?

4

1 に答える 1

0

sqlplus標準入力からの読み取りを想定して、ヒアドキュメントが必要だと思います。

function XYZ
{
        sqlplus -s $DB_USR/$DB_USR$pwd_suffix@$SID <<-EOF
        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...
        EOF
}
于 2013-02-22T20:27:07.243 に答える