1. 程式人生 > >oracle對一個表的多行資料進行修改

oracle對一個表的多行資料進行修改

1、第一種使用迴圈修改表
--遍歷一個表並作修改
declare bl varchar(100); --宣告一個字串變數
BEGIN 
FOR L_RECORD IN (select * from ysl_config_cy where name='機動車六年免檢')  
--將一個物件賦值到L_RECORD變數中
LOOP   
      SELECT property_value into bl FROM ysl_config_cy_detail a where a.config_fid= L_RECORD.fid;
      dbms_output.put_line('m_num=' || bl); --列印bl變數的值   
     update ysl_config_cy set name=bl where fid='DEDF034EFA754B5EAB256D306649A604' ;
 END LOOP;
END;

2、直接修改(和上面例子具有同樣的效果)
update ysl_config_cy a set name=(
    select b.property_value from ysl_config_cy_detail b where 
     a.name='機動車六年免檢' and b.config_fid= a.fid
     )
where  a.fid='DEDF034EFA754B5EAB256D306649A604' ;
  
--set的原理是和下面查詢一樣,where的條件是括號裡面的其中一個
select b.property_value,a.* from ysl_config_cy_detail b ,ysl_config_cy a where a.name='機動車六年免檢' and b.config_fid= a.fid