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
平時多記記,到用時才能看看,記錄你的進步,分享你的成果