Oracle
 sql >> Base de données >  >> RDS >> Oracle

PL/SQL - Comment utiliser un tableau dans une clause IN

Afin d'utiliser la collection définie comme une table imbriquée ou un tableau associatif dans le from clause d'une requête, vous devez soit, comme @Alex Poole l'a correctement souligné, créer un type de niveau de schéma (SQL) ou en utiliser un, qui est à votre disposition via ODCIConst paquet - odcidatelist car vous avez l'intention d'utiliser une liste de dates. Par exemple, la définition de votre curseur pourrait ressembler à ceci :

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

OU

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)

Remarque :Vous devez tenir compte de la partie heure d'une date lorsque vous effectuez une comparaison de dates. Si vous souhaitez comparer uniquement la partie date, il serait probablement utile de vous débarrasser de la partie heure en utilisant trunc() fonction.