首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

PLS-00201: 必须说明标识符 'UDP_EMP '

2014-01-28 
建立表如下: create table emp(ename varchar2(100),sal number(6,2)) insert into emp values( scott ,3

建立表如下:
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) 当然报错了。

        

热点排行