1  create or replace procedure add_employee
  2  (eno number,name varchar2,sal number,
  3  job varchar2 default 'CLERK',dno number)
  4  is
  5  --declare
  6    e exception
  7    pragma exception_init(e,-2291);
  8  begin
  9    insert into emp (empno,ename,sal,job,deptno)
 10      values(eno,name,sal,job,dno);
 11  exception
 12    when dup_val_on_index then
 13      raise_application_error(-20000,'雇员号不能重复');
 14    when e then
 15      raise_application_error(-20001,'部门号不存在');
 16* end;
SQL> /警告: 创建的过程带有编译错误。我测试了,就是那个定义的 e  例外有问题,我是照书上抄的 不知道为什么会出现错误,请大家知道下,谢谢!  还有大家一般用什么pl/sql开发工具啊,感觉自带的sql*plus  用的不是很顺手。

解决方案 »

  1.   


    --你可以用show errors看下哪里错了
    create or replace procedure add_employee
      (eno number,name varchar2,sal number,
      job varchar2 default 'CLERK',dno number)
      is
      --declare
      e exception;
      pragma exception_init(e,-2291);
      begin
       insert into emp (empno,ename,sal,job,deptno)
      values(eno,name,sal,job,dno);
      exception
      when dup_val_on_index then
      raise_application_error(-20000,'雇员号不能重复');
      when e then
      raise_application_error(-20001,'部门号不存在');
      end;
    /