Oracle tiene la limitación de 1000 elementos en las clausulas IN y alli donde hay que poner lista. No obstante hay una forma alternativa de ejecutarlo y es construir una subconsulta.
Supongamos la siguiente consulta que nos da el error:
select id, nombre from articulos where id not in (1,2,…,1001)
podemos transformar la lista de elementos en una subconsulta:
select id, nombre from articulos where id not in (select 1 from dual union select 2 from dual union … select 1001 from dual)
El problema de esto es como escribir mil y pico de veces las palabras . Fácil, nos ayudaremos de algun editor de textos avanzados como Notepad++, y sustituyendo la coma por » FROM DUAL UNION SELECT » tenemos gran parte del trabajo hecho, solo habra que poner un al principio del todo «SELECT» para que la consulta sea correcta.