日期:2014-05-17  浏览次数:21467 次

存储过程调用报错(ORA-06550
写了一个sql文件
大致如下:
SET ECHO ON
SET TIMING ON
SET SERVEROUTPUT ON

WHENEVER SQLERROR EXIT SQL.SQLCODE
WHENEVER OSERROR EXIT 9

BEGIN 
EXECUTE 调用的存储过程;
其他DB操作;
COMMIT;
END;
/
EXIT
就报错,但是将主要代码部分改为下面以后就正常了。为什么呢。
*调用的存储过程单独执行是没问题的。

EXECUTE 调用的存储过程;
BEGIN 
其他DB操作;
COMMIT;
END;
/
EXIT

------解决方案--------------------
如果你在pl/sql语句块中执行存储过程,不需要execute命令
begin
proc_name;
end
如果在pl/sql developer的command window或者sql*plus中执行过程则需
execute proc_name;