Oracle 如何循環查詢結果集,進行新增或修改


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

平時多記記,到用時才能看看,記錄你的進步,分享你的成果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM