DB2 - UPDATE en DB2

 
Vista:

UPDATE en DB2

Publicado por lAlO (2 intervenciones) el 27/09/2007 17:26:59
hola, cuando se realiza un update de la siguiente manera:

update tabla
set atrib="valor"
where atributo in (a1, a2, a3, ..., aN)

mi pregunta es ¿cuál es el máximo número de valores para "a"?
¿Existe algún límite?

gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:UPDATE en DB2

Publicado por Chauli (43 intervenciones) el 02/10/2007 03:07:51
Hola, me imagino que la cantidad de An que podes poner es bastante grande, no me atreveria a tirar un valor, pero habria que probar hasta cuanto se puede. la forma que podes tener de probar el n es, haciendo una consulta que devuelva un numero determinado de filas y a esa consulta la podes poner como sub-consulta dentro de tu consulta mas grande, si podes lograr que db2 tire un error, entonces pasate el limite, entonces empezas a filtrar.
Por ejemplo

si tenes una tabla con 15000 registros ( si no la tenes, podes escribirte un programa que te la genere)
hacete un SELECT campo1 FROM TABLAGIGANTE

TABLAGIGANTE, es una tabla que yo supongo que tiene 15000 registros y que vos generaste de alguna forma, campo1 deberia ser un campo que sea unico, una clave primaria por ejemplo

una vez que tengas la "consultita" esa le podes poner la consulta arriba y te va a quedar de la siguiente forma

update tabla
set atrib="valor"
where atributo in (SELECT campo1 FROM TABLAGIGANTE)

en el caso que obtengas un error podes empezar a restringir TABLAGIGANTE para que tenga menos valores usando la clausula FETCH FIRST N ROWS ONLY, por ejemplo si queres que TABLAGIGANTE que devolvia 15000 filas, necesitas que devuelva 12000, pones en la sub-consulta "SELECT campo1 FROM TABLAGIGANTE FETCH FIRST 12000 ROWS ONLY"

la idea de hacer todo esto es que puedas probar el limite de valores que hay en la condicion IN y mejor que poner los valores a mano es hacer una consulta SQL.

Particularmente nunca necesite probar una cosa tal, de hecho estaria bueno que postees tus resultados por este foro asi nos enteramos todos, porque es muy interesante tu pregunta
Saludos!
:P
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:UPDATE en DB2

Publicado por lAlO (2 intervenciones) el 02/10/2007 23:53:37
en realidad no cuento con un cliente de DB2, me conecto a una base con un java, pero, según las pruebas que hice, el límite de valores a actualizar está entre 2856 y 2999 registros.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar