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]

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

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条