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

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 05: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]

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

报告相同问题?

悬赏问题

  • ¥30 SD中的一段Unet下采样代码其中的resnet是谁跟谁进行残差连接
  • ¥15 Unet采样阶段的res_samples问题
  • ¥60 Python+pygame坦克大战游戏开发实验报告
  • ¥15 R语言regionNames()和demomap()无法选中中文地区的问题
  • ¥15 Open GL ES 的使用
  • ¥15 我如果只想表示节点的结构信息,使用GCN方法不进行训练可以吗
  • ¥15 QT6将音频采样数据转PCM
  • ¥15 下面三个文件分别是OFDM波形的数据,我的思路公式和我写的成像算法代码,有没有人能帮我改一改,如何解决?
  • ¥15 Ubuntu打开gazebo模型调不出来,如何解决?
  • ¥100 有chang请一位会arm和dsp的朋友解读一个工程