Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

UPDATE multiple

Estas en el tema de UPDATE multiple en el foro de Oracle en Foros del Web. Que tal amig@s alguna vez en mySQL vi una funcion como esta: INSERT INTO tabla (campo1, campo2, campo3) VALUES (v1_1, v1_2, v1_3), (v2_1, v2_2, v2_3), ...
  #1 (permalink)  
Antiguo 03/04/2013, 11:34
 
Fecha de Ingreso: marzo-2010
Mensajes: 1
Antigüedad: 14 años, 8 meses
Puntos: 0
UPDATE multiple

Que tal amig@s alguna vez en mySQL vi una funcion como esta:

INSERT INTO tabla (campo1, campo2, campo3) VALUES
(v1_1, v1_2, v1_3),
(v2_1, v2_2, v2_3),
(v3_1, v3_2, v3_3);

me pregunto si hay lago así pero en UPDATE y para Oracle para que con una sola llamada se actualicen varios campos y no estar ejecutanto un UPDATE por registro o si hay alguna otra forma de hacerlo de un modo eficiente se los agradeceria
  #2 (permalink)  
Antiguo 03/04/2013, 13:47
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Respuesta: UPDATE multiple

Se puede hacer update masivo al 100x100 de los registros o a los que cumplan las condiciones

Código SQL:
Ver original
  1. UPDATE TABLA
  2. SET CAMPO = VALOR;

TODOS LOS REGISTROS SE ACTUALIZAN.

Código SQL:
Ver original
  1. UPDATE TABLA
  2. SET CAMPO = VALOR
  3. WHERE "" CONDICION "";

UNOS CUANTOS REGISTROS ACTUALIZADOS
  #3 (permalink)  
Antiguo 03/05/2013, 15:49
Avatar de zarwar  
Fecha de Ingreso: mayo-2013
Ubicación: Madrid
Mensajes: 77
Antigüedad: 11 años, 6 meses
Puntos: 4
Respuesta: UPDATE multiple

Algunas otras formas más elaboradas podrían ser:

Actualizaciones con subquery:
Código SQL:
Ver original
  1. UPDATE test
  2. SET    (fk, fill) = (
  3.            SELECT test8.fk, test8.fill
  4.            FROM   test8
  5.            WHERE  pk = test.pk)
  6. WHERE  pk IN (
  7.            SELECT pk
  8.            FROM   test8);

O incluso mediante Bulk collect en este caso se recogen en memoría una serie de registros y se actualiza en bloque. Este método es muy rápido si hay que hacer gran cantidad de actualizaciones, inserciones...
Te pongo u enlace del foro:
[URL="http://www.forosdelweb.com/f100/bulk-collect-969243/"]http://www.forosdelweb.com/f100/bulk-collect-969243/[/URL]
__________________
Entra en mi blog sobre base de datos Oracle:
http://mundodb.es

Última edición por gnzsoloyo; 03/05/2013 a las 18:54 Razón: SQL no etiquetado.

Etiquetas: oracle10g, update
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:02.