Linux SQLPLUS声明块中出错
我在declare块中得到一个错误。我已经把它贴在代码下面了Linux SQLPLUS声明块中出错,linux,oracle,bash,sqlplus,Linux,Oracle,Bash,Sqlplus,我在declare块中得到一个错误。我已经把它贴在代码下面了 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
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美元
有人能告诉我是什么导致了这个问题吗?我想您需要一个here文档,假设
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
}
函数XYZ
{
sqlplus-s$DB_USR/$DB_USR$pwd_suffix@$SID这段代码到底是什么?PL/SQL还是bash?