plsql子查询查出多行怎么修改
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了plsql子查询查出多行怎么修改相关的知识,希望对你有一定的参考价值。
参考技术A PL/SQL查询出来的数据要想修改,那就是用:--可更新的游标:
--for update 说明是为了更新才使用的这个游标
--current of c 是更新当前这条记录,当前游标指向哪条记录上,就更新哪一条
declare
cursor c
is
select * from emp for update;
begin
for v_temp in c loop
if(v_temp.sal < 2000) then
update emp set sal = sal*2 where current of c;
elsif(v_temp.sal = 5000) then
delete from emp where current of c;
end if;
end loop;
commit;
end;
上面程序,如果sal<2000,那么更新emp表的sal字段为sal*2,
如果sal=5000,那么删除这条记录.本回答被提问者和网友采纳
PLSQL:如果变量 IN 子查询
【中文标题】PLSQL:如果变量 IN 子查询【英文标题】:PLSQL : If variable IN subquery 【发布时间】:2014-01-17 17:53:21 【问题描述】:在 PL/SQL 函数中是否有可能
IF xVar IN (SELECT yVar
FROM....)
THEN...
这个? 谢谢
【问题讨论】:
在这里查看几种方法:***.com/questions/13217600/… 【参考方案1】:不,你可能不得不这样做
select count(*)
into foo
from blah
where yVar = xVar
if foo > 0 then ...
如果这是你经常使用的东西,你可以创建一个返回布尔值的函数
【讨论】:
【参考方案2】:您可以将 FOR-IN 与隐式光标一起使用。我只知道带有 IF 表达式的 IF-THEN-ELSE 运算符。
【讨论】:
以上是关于plsql子查询查出多行怎么修改的主要内容,如果未能解决你的问题,请参考以下文章