2013-02-22 87 views
0

我在声明块中收到错误。我在代码下面粘贴了它。SQLPLUS声明块中的错误

function XYZ 
{ 
     sqlplus -s $DB_USR/[email protected]$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 $

谁能告诉我是什么原因造成的问题

+1

究竟是什么代码? PL/SQL还是bash? – 2013-02-22 19:40:03

回答

0

我想你想在这里的文档,假设sqlplus从标准输入读取:

function XYZ 
{ 
     sqlplus -s $DB_USR/[email protected]$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 
} 
+0

这工作!感谢您的答复。 – itsh 2013-02-23 00:10:11