Powiedziałeś, że nie chcesz, ale:użyj tabeli tymczasowej. To jest tutaj właściwe rozwiązanie.
Analiza zapytań w Oracle jest kosztowna i właśnie to uzyskasz, gdy umieścisz tysiące identyfikatorów w gigantycznym blobie SQL. Istnieją również źle zdefiniowane limity od długości zapytania, na które masz zamiar trafić. Z drugiej strony robienie anty-JOIN przeciwko stolikowi... Oracle jest w tym dobra. Masowe ładowanie danych do tabeli, Oracle też jest w tym dobry. Użyj tabeli tymczasowej.
Ograniczenie IN
do tysiąca wpisów to kontrola zdrowia psychicznego. Fakt, że w nią uderzasz, oznacza, że próbujesz zrobić coś szalonego.