sql >> Databáze >  >> RDS >> Oracle

Oracle SQL:Jak používat více než 1000 položek uvnitř klauzule IN

Doporučený způsob, jak to v Oracle zvládnout, je vytvořit dočasnou tabulku, zapsat do ní hodnoty a pak se k ní připojit. Pomocí dynamicky vytvořeného IN klauzule znamená, že optimalizátor dotazů provádí „tvrdou analýzu“ každého dotazu.

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)


  1. PRVG-2027 Vlastník souboru je mezi uzly nekonzistentní

  2. Věštec. Jak vytisknout datum a čas?

  3. Docker – Jak lze spustit příkaz psql v kontejneru postgres?

  4. Převést „čas“ na „datetimeoffset“ v SQL Server (příklady T-SQL)