Oracle的PL/SQL中怎樣循環查詢的結果集,然后根據查詢結果進行判斷,是新增或修改操作
參考 xiaqo.com
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
平時多記記,到用時才能看看,記錄你的進步,分享你的成果

