50分!oracle 非常简单的update用法

zxcvbnmasd 2010-07-14 11:16:25
如 表a,字段a.num1;
while(i <100)
{
num1++;
update表a;
i++;
}
这样因在while中没做commit,不能实现字段a的累加功能,
请问在不做commit的情况下请问如何实现字段num1的累加(想要在一个事务中完成).
...全文
127 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
da21 2010-07-14
  • 打赏
  • 举报
回复
没做commit,也能多次update的啊!

while(i <100)
{
num1++;

i++;
}
update表a;
minitoy 2010-07-14
  • 打赏
  • 举报
回复
mark
FinrodElensar 2010-07-14
  • 打赏
  • 举报
回复
有没有试过FOR循环或者FORALL,组合字符串的形式?
lzf616 2010-07-14
  • 打赏
  • 举报
回复
先累加后再UPDATE——————
czfxwpy 2010-07-14
  • 打赏
  • 举报
回复
搂主这题的逻辑有点问题,同意下面的。


[Quote=引用 9 楼 mahanso 的回复:]
为什么要这样操作呢,逻辑上有问题呀,

你得到num1的累加之后结果,再更新多好呀。

update放在循环之外,执行一次。
[/Quote]
mahanso 2010-07-14
  • 打赏
  • 举报
回复
为什么要这样操作呢,逻辑上有问题呀,

你得到num1的累加之后结果,再更新多好呀。

update放在循环之外,执行一次。
lonenan 2010-07-14
  • 打赏
  • 举报
回复
l_str := 'update表a';
execute immediate l_str;
LingXX0103 2010-07-14
  • 打赏
  • 举报
回复
2个变量(num1,i)初始值一样吗?
如果一样,可以省略一个
这个循环可以放也可以不放在一个事务中

1)
while(i <100)
{
num1++;
i++;
}
事务开始
update表a;
Commit

2)事务开始
while(i <100)
{
num1++;
i++;
update表a;
}
Commit

luoyoumou 2010-07-14
  • 打赏
  • 举报
回复
-- 你的需求是什么?哪个字段?怎么个累加的情况?
心中的彩虹 2010-07-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 zxcvbnmasd 的回复:]
如 表a,字段a.num1;
while(i <100)
{
num1++;
update表a;
i++;
}
这样因在while中没做commit,不能实现字段a的累加功能,
请问在不做commit的情况下请问如何实现字段num1的累加(想要在一个事务中完成).
[/Quote]

--是否此意思
decalre
begin
while i <100 loop
update a set num1=num1+1;
i:=i+1;
end loop;
commit;
end;




17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧