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

我想你想要一个here-document,假设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 回答