下面是一个别人写好的程序WHENEVER SQLERROR EXit 1
declare
  TYPE test_rec IS RECORD(
    Code VARCHAR2(10),
    Name VARCHAR2(30) NOT NULL := 'book');
  V_book test_rec;
  CURSOR c_sal IS SELECT empno, ename, sal FROM emp ;
BEGIN
 省略。
END;试着执行源代码的时候, 【WHENEVER SQLERROR EXit 1】 这句,编译错误。
源程序是用SHELL调用的。因为没有UNIX系统,测试不了。
难道SHELL调用时执行可以?  单纯在PL/SQL DEVELOPER中执行这样的PL/SQL 不可以是吗?
刚刚接触PL/SQL不太了解, 请高手指导一下。 

解决方案 »

  1.   

    WHENEVER SQLERROR EXit
    是sql*plus中的命令,只能在sql*plus中使用
    不要在其它环境中使用
      

  2.   

    谢谢唐人的回答。 
    可是上面的程序都是写在 XX.sql 一个文件里。 SHELL调用的时候, 如何能识别是sql*plus中的命令,还是PL/SQL?
      

  3.   

    应该不存在识别的问题吧,你用shell调用的时候oracle会默认sql*plus中执行。
      

  4.   

    SQL 脚本需要使用 SQLPLUS 运行。
    如,SQLPLUS system @xx.sql