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