create or replace
procedure find_emp_info (
p_emp_info out emp%rowtype,
p_empno in emp.empno%type default 7839
)
is
p_emp_info emp%rowtype;
begin
select * into emp_info
from emp
where empno =p_empno;
exception
when no_data_fount then
dbms_output.put_line( 'enter employee number not exists');
when others then
dbms_output.put_line('ERROR OCCURS ') ;
RAISE_APPLICATION_ERROR (-20003,SQLCODE||CHR(10)||sqlerrm);
end find_emp_info ;
/
PLS-00410:RECORD,TABLE或参数列表中的重复字段不是 允许
为什么在上面的代码中出现此错误
答案 0 :(得分:1)
您已声明了一个名为p_emp_info
的局部变量,但您的out参数名称相同。
你根本不需要那个本地变量;只是删除它的声明。
create or replace
procedure find_emp_info (
p_emp_info out emp%rowtype,
p_empno in emp.empno%type default 7839
)
is
begin
select * into emp_info
from emp
...
答案 1 :(得分:0)
有两个错误,因为@Alex提到你声明了一个本地变量p_emp_info
,可以将其删除。
您使用的例外是no_data_fount
,必须是no_data_found
。
create or replace
procedure find_emp_info (
p_emp_info out emp%rowtype,
p_empno in emp.empno%type default 7839
)
is
begin
select * into p_emp_info
from emp
where empno =p_empno;
exception
when no_data_found then
dbms_output.put_line( 'enter employee number not exists');
when others then
dbms_output.put_line('ERROR OCCURS ') ;
RAISE_APPLICATION_ERROR (-20003,SQLCODE||CHR(10)||sqlerrm);
end find_emp_info ;
/