建立表如下:
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
怎么解决这个问题?
------解决方法--------------------------------------------------------
你我试了一下是可以的,你的pl/sql developer版本是多少啊?还有oracle的版本。
------解决方法--------------------------------------------------------
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
------解决方法--------------------------------------------------------
create or replace procedure upd_emp(v_ename varchar2,v_sal number) is
你过程的名字是upd_emp
而你执行的是udp_emp( 's ',111) 当然报错了。