函数:
create or replace function sal_fun
(no in number)
return number is
newSal number;
begin
select sal into newSal
from new_Sal where empno=no;
return(newSal);
end sal_fun;
调用:
update emp set sal = sal_fun(empno)【问题在这里】
where empno in(select empno from emp);
我以emp表为例,业务是把emp表所有员工的sal更新成newSal
请问我在调用那一块要如何写?
如何在update中调用自定义函数,并把where 字句的参数传进去?
1.如果你是说把emp表所有都更新的话,就不用你那个where了吧,你的update emp针对 where empno in(select empno from emp),这跟不加where没区别
[code="sql"]
update emp set sal = sal_fun(empno);
[/code]
2.其实看你的意思,是想把emp表所有员工的sal更新成newSal表中的sal,这用不着写个function了吧:
[code="sql"]
update emp t
set t.sal =
(select e.sal from new_Sal e where e.empno = t.empno);
[/code]