alter table q022gt00 modify Q022GT00_NRSPT number(10,4);

create table Q02B_TEMPORAL
(ID_CUES	NUMBER(9,0) ,
Q022GT00_NSPT	NUMBER(10,4) ,
Q022GT00_NRSPT	NUMBER(10,4) );

create or replace
PROCEDURE Q02B_CAMBIO_NSPT AS

cursor c_q02gt00 is select * from q022gt00;

cursor c_q02b_temporal is select * from q02b_temporal;

registro q022gt00%ROWTYPE;
registroTemporal q02b_temporal%ROWTYPE;


BEGIN
  --- guardo los datos a modificar en una tabla temporal
  open c_q02gt00;
  loop
    fetch c_q02gt00 into registro;
    exit when c_q02gt00%NOTFOUND;
    insert into q02b_temporal (ID_CUES, Q022GT00_NSPT, Q022GT00_NRSPT)
      values (registro.Q022GT00_ID_CUES, registro.Q022GT00_NSPT, registro.Q022GT00_NRSPT);
    commit;
  end loop;
  close c_q02gt00;
  
  ---- con los datos de la tabla temporal hago la update en la tabla 
  open c_q02b_temporal;
  loop
    fetch c_q02b_temporal into registroTemporal;
    exit when c_q02b_temporal%NOTFOUND;
    update q022gt00 set 
      Q022GT00_NSPT = registroTemporal.Q022GT00_NRSPT,
      Q022GT00_NRSPT = registroTemporal.Q022GT00_NSPT
      where Q022GT00_ID_CUES = registroTemporal.ID_CUES;
  end loop;
  
  commit;
  
  exception 
    when others then rollback;
    
  
END Q02B_CAMBIO_NSPT;
/
