wing3501 2012-07-18 12:12
浏览 284
已采纳

orcale自定义函数返回值问题

函数:
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条回答 默认 最新

  • liuyinhuan0409 2012-07-18 13:06
    关注

    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]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码