1. 程式人生 > 實用技巧 >MYSQ建立聯合索引,欄位的先後順序,對查詢的影響分析

MYSQ建立聯合索引,欄位的先後順序,對查詢的影響分析

技術標籤:sqloracle

Oracle 如何迴圈查詢結果集,進行新增或修改
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; 

迴圈的結果集的檢視
在這裡插入圖片描述
執行的結果檢視
在這裡插入圖片描述