sql >> Base de Datos >  >> RDS >> Oracle

PL/SQL - Cómo usar una matriz en una cláusula IN

Para usar la colección definida como una tabla anidada o una matriz asociativa en el from cláusula de una consulta, debe, como señaló correctamente @Alex Poole, crear un tipo de nivel de esquema (SQL) o usar uno, que está disponible para usted a través de ODCIConst paquete - odcidatelist ya que tiene la intención de utilizar una lista de fechas. Por ejemplo, la definición de su cursor podría verse así:

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

O

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)

Nota:debe tener en cuenta la parte de tiempo de una fecha al realizar una comparación de fechas. Si desea comparar solo la parte de la fecha, probablemente sería útil deshacerse de la parte del tiempo usando trunc() función.