Препоръчителният начин за справяне с това в Oracle е да създадете временна таблица, да запишете стойностите в това и след това да се присъедините към това. Използване на динамично създаден IN
клаузи означава, че оптимизаторът на заявки прави „твърд анализ“ на всяка заявка.
create global temporary table LOOKUP
(
ID NUMBER
) on commit delete rows;
-- Do a batch insert from your application to populate this table
insert into lookup(id) values (?)
-- join to it
select foo from bar where code in (select id from lookup)