建立表如下:
create table emp(ename varchar2(100),sal number(6,2))
insert into emp values('scott',3000)建立存储过程如下:
create or replace procedure upd_emp(v_ename varchar2,v_sal number) is
e_no_row exception;
begin
  update emp set sal=v_sal where ename=v_ename;
  if sql%notfound then
     raise e_no_row;
     end if;
    exception
    when e_no_row then 
         raise_application_error(-20004,'该订单不存在');
end upd_emp;存储过程就是完成对表记录的更新操作,如果没有要更新的记录,就返回该订单不存在。执行存储过程如下:
exec udp_emp('s',111)然后就报错了,错误如下:
SQL> exec udp_emp('s',111)begin udp_emp('s',111); end;ORA-06550: 第 1 行, 第 7 列: 
PLS-00201: 必须说明标识符 'UDP_EMP'
ORA-06550: 第 1 行, 第 7 列: 
PL/SQL: Statement ignored请教各位高手,怎么解决这个问题

解决方案 »

  1.   

    楼主我试了一下是可以的,你的pl/sql developer版本是多少啊?还有oracle的版本。
      

  2.   

    SQL> exec test_emp('s',111);begin test_emp('s',111); end;ORA-20004: 该订单不存在
    ORA-06512: at "TEST_UNI_CARD.TEST_EMP", line 10
    ORA-06512: at line 1
      

  3.   

    PL/SQL应该是挺新的版本啊,创建存储过程的脚本执行没问题,成功。
    就是执行的时候不能成功,我明天回单位再看看版本,谢谢楼上的各位。
      

  4.   

    楼主粗心了。
    create or replace procedure upd_emp(v_ename varchar2,v_sal number) is你过程的名字是upd_emp
    而你执行的是udp_emp('s',111) 当然报错了。