Oracle的PL/SQL中怎样循环查询的结果集,然后根据查询结果进行判断,是新增或修改操作
loop循环例子
for item in (select a,b,c from table_a where 条件) loop insert into table_b(a,b,c) values (item.a,item.b,item.c); end loop;
如何将查询结果集进行赋值
-- 获取结算单位是否存在(查询结果集赋值)--- select COUNT(*) into conNum from Dxc_Consignor where NAME=balance_Name;
循环结果集,对每一个结果进行判断,如存在,执行修改,不存在,执行新增
----循环修改运输记录的货主的TmsCode 方法--- declare balance_Id varchar2(100); balance_Name varchar2(100); conNum number; begin --循环运输记录中的结算单位(ID,NAME)(查询结果集循环)-- for item in (select A.BALANCE_ID,A.BALANCE_NAME from VIEW_GZ_YIMIAO A group by A.BALANCE_ID,A.BALANCE_NAME) loop -- 将查询到的数据赋值给变量 -- balance_Id := item.balance_id; balance_Name := item.balance_name; -- 获取结算单位是否存在(查询结果集赋值)--- select COUNT(*) into conNum from Dxc_Consignor where NAME=balance_Name; --判断是否存在,存在则将结算单位ID赋给货主的TmsCode -- if conNum=1 then dbms_output.put_line('存在'); --执行修改-- update Dxc_Consignor set TMSCODE=balance_Id where NAME=balance_Name; else dbms_output.put_line('不存在'); --执行新增-- end if; end loop; end;
循环的结果集的视图
执行的结果视图
PS:
参考网址:https://zhidao.baidu.com/question/478447631.html