oracle中存储过程如何实现批量修改数据
比如selectidfromtestwheresalary=2000,这个id是个list我想修改这写id对应的奖金,全部加100...
比如select id from test where salary=2000 ,这个id是个list 我想修改这写id对应的奖金,全部加100
展开
3个回答
展开全部
楼主给你个参考吧。
跟业务关系很大的:begin
for i in 1..10
loop
select status into steat from activeinfo where activeid=var_array('i');
if steat<>1 then
update activeinfo set status=1 where activeid=var_array(i);
dbms_output.put_line('该删除成功!');
end if;
select status into shu from activeandclass where activeid=var_array('i');
dbms_output.put_line(shu);
if shu<>1 then
update activeandclass set status=1 where activeid=var_array('i');
else
dbms_output.put_line('c此条已经被删除,不能重复删除!');
end if;
end loop;
commit;
跟业务关系很大的:begin
for i in 1..10
loop
select status into steat from activeinfo where activeid=var_array('i');
if steat<>1 then
update activeinfo set status=1 where activeid=var_array(i);
dbms_output.put_line('该删除成功!');
end if;
select status into shu from activeandclass where activeid=var_array('i');
dbms_output.put_line(shu);
if shu<>1 then
update activeandclass set status=1 where activeid=var_array('i');
else
dbms_output.put_line('c此条已经被删除,不能重复删除!');
end if;
end loop;
commit;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
create or replace procedure modifysalary(t_salary in number)
as
--t_salary 传入2000即可
begin
update test set salary = salary+100 where salary=t_salary;
end;
as
--t_salary 传入2000即可
begin
update test set salary = salary+100 where salary=t_salary;
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好抽象的问题,能不能具体点
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询