Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle SQL:Как да използвате повече от 1000 елемента в клауза IN

Препоръчителният начин за справяне с това в 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)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PL/SQL:как да подканя въвеждането на потребителя в процедура?

  2. Трябва ли да създавам индекси на външни ключове на Oracle?

  3. Устройство за възстановяване при нулева загуба на данни

  4. Oracle RAC върху облаци на трети страни

  5. Агентът е блокиран