Oracle的PL/SQL中怎样循环查询的结果集,然后根据查询结果进行判断,是新增或修改操作
loop循环例子
for item in (select a,b,c from table_a where 条件) loopinsert into table_b(a,b,c) values (item.a,item.b,item.c);end loop;
代码示例
循环结果集,对每一个结果进行判断,如存在,执行修改,不存在,执行新增
----循环修改运输记录的货主的TmsCode 方法---declarebalance_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 thendbms_output.put_line('存在');--执行修改--update Dxc_Consignor set TMSCODE=balance_Id where NAME=balance_Name;elsedbms_output.put_line('不存在');--执行新增--end if;end loop;end;
