【问题标题】:please look the below program and explai me why the error is given请查看下面的程序并解释为什么会出现错误
【发布时间】:2015-02-26 23:39:29
【问题描述】:
create or replace package ins_emp
is
procedure insert_emp(
p_ename emp.ename%type,
p_sal emp.sal%type,
p_deptno emp.deptno%type);

end ins_emp;

create or replace package body ins_emp
is

function gen_no
return number
is

v_empno emp.empno%type;
begin
select max(empno) into v_empno from emp;
v_empno:=empno+1;
return v_empno;

end;
procedure insert_emp(
p_ename emp.ename%type,
p_sal emp.sal%type,
p_deptno emp.deptno%type)
is 
p_eno emp.empno%type;

begin


p_eno:=gen_no;

insert into emp(empno,ename,sal,deptno) values(p_eno,p_ename,p_sal,p_deptno);



end insert_emp;

end ;

在上面的代码中,包被成功创建。但包体显示错误,因为语句忽略了标识符“EMPNO”必须声明。我已经在 sqlplus 编辑器上运行了这个程序。

【问题讨论】:

  • 请编辑您的问题并包含emp 表的定义。谢谢。

标签: plsql


【解决方案1】:

试试

function gen_no
return number
is
    v_empno emp.empno%type;
begin
    select max(empno) + 1 into v_empno from emp;

    return v_empno;
end;

您不能在 SQL 部分之外使用 empno。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-27
    • 2015-11-01
    • 2014-05-29
    • 1970-01-01
    • 1970-01-01
    • 2020-01-13
    • 2011-03-25
    • 2017-03-25
    相关资源
    最近更新 更多