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

PL/SQL - Как да използваме масив в клауза IN

За да използвате колекция, дефинирана като вложена таблица или асоциативен масив в from клауза на заявка, както правилно посочи @Alex Poole, трябва да създадете тип на ниво схема (SQL) или да използвате такъв, който е достъпен за вас чрез ODCIConst пакет - odcidatelist тъй като възнамерявате да използвате списък с дати. Например дефиницията на вашия курсор може да изглежда така:

cursor DataCursor_Sort(p_brth_dt in sys.odcidatelist) is
  select *
    from sourceTable 
   where a.brth_dt IN (select column_value 
                         from table(p_brth_dt))

ИЛИ

cursor DataCursor_Sort(p_brth_dt in sys.odcidatelist) is
  select s.*
    from sourceTable      s
    join table(p_brth_dt) t
      on (s.brth_dt = t.column_value)

Забележка:Трябва да вземете предвид времевата част от датата, когато извършвате сравнение на дати. Ако искате да сравните само частта за дата, вероятно би било полезно да се отървете от частта за време, като използвате trunc() функция.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Кеширане на последователност на Oracle

  2. Алтернативи на CASE в Oracle 8i

  3. Ограничаване на резултат с помощта на PHP, без използване на клауза LIMIT при извличане на редове в заявка за база данни?

  4. Проверете дали съществува ред

  5. Инсталирането на APEX е неуспешно, PLS-00201:идентификаторът „SYS.DBMS_DB_VERSION“ трябва да бъде деклариран