Oracle中包与函数的区别???
create or replace package mypace1
as
procedure myproc(depenos emp.deptno%type) ;
function myfun(empnos emp.empno%type) return emp.sal%type;
end;
create or replace package body mypace1
as
procedure myproc(depenos emp.deptno%type)
as
cursor mysor(myno emp.deptno%type) is select * from emp where deptno = myno;
begin
for i in mysor(depenos)
loop
dbms_output.put_line(i.sal||' ' ||i.deptno);
end loop;
end;
function myfun(empnos emp.empno%type) return emp.sal%type
as
mysal emp.sal%type;
begin
select sal into mysal from emp where empno=empnos ;
mysal:=mysal+500;
----------下面这行代码--------
update emp set sal=mysal;
return mysal ;
end;
end;
上述代码运行正确;
create function myfun(empnos emp.empno%type) return emp.sal%type
as
mysal emp.sal%type;
begin
select sal into mysal from emp where empno=empnos ;
mysal:=mysal+500;
update emp set sal=mysal where empno=empnos;
return mysal ;
end;
这个代码块也运行正确;
为什么把第一段代码中function 方法中 的修改语句中添加上条件语句是有问题;??????