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

PL/SQL - Jak používat pole v klauzuli IN

Chcete-li použít kolekci definovanou jako vnořenou tabulku nebo asociativní pole v from klauzuli dotazu, měli byste, jak správně zdůraznil @Alex Poole, vytvořit typ úrovně schématu (SQL) nebo použít typ, který je vám k dispozici prostřednictvím ODCIConst balíček - odcidatelist protože hodláte použít seznam dat. Definice kurzoru může vypadat například takto:

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))

NEBO

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)

Poznámka:Při porovnávání data byste měli vzít v úvahu časovou část data. Pokud chcete porovnat pouze část data, pravděpodobně by bylo užitečné zbavit se části času pomocí trunc() funkce.



  1. Kde nastavit hodnotu UTC datetime v n-vrstvé aplikaci:Prezentační vrstva, Doména nebo Databáze?

  2. Jak převést řetězec na datum v PostgreSQL

  3. Halloweenský problém – část 1

  4. Lotus Notes XPages pro design a Oracle (nebo jiné RDBMS) pro data