Hola gnzsoloyo
La verdad se me cruzaron un poco los cables y no quedé convencido con la respuesta que te dí.
Cuando haces uso de cursores, el cursor es un apuntador al registro. Si este cambia, es cuando se presentan los problemas relacionados con snapshot too old en caso que el cursor abierto sea muy grande. Esto aplica para toda mi respuesta del primer post.
Cuando haces uso de bulk collect, envías todo el resultado de la consulta a memoria RAM. Está operación es independiente del movimiento de la tabla, ya que por cuestiones de performance, toda la información ya se encuentra en memoria y no depende de las acciones que se presenten en la tabla.
Según esto, yo no consideraría necesario realizar UPDATE.
Quedaría unicamente así:
Código SQL:
Ver originalFORALL i IN v_aplica.FIRST .. v_aplica.LAST
INSERT INTO APLICA(
AP.id, AP.numero, AP.cont, AP.n_serial, AP.c_serv, AP.u_alta, AP.f_alta, AP.u_baja,AP.f_baja)
VALUES(
app_seq.NEXTVAL, v_aplica(i).numero, v_aplica(i).cnt, v_aplica(i).n_serial,
v_aplica(i).c_serv, v_aplica(i).u_alta, SYSDATE, v_aplica(i).n_serial,SYSDATE);
Esto lo digo asumiendo que la tabla del INSERT y la tabla del UPDATE son la misma.
Saludos