sql >> Databasteknik >  >> RDS >> Oracle

PL/SQL - Hur man använder en array i en IN-klausul

För att använda samling definierad som en kapslad tabell eller en associativ array i from klausul i en fråga du antingen bör, som @Alex Poole korrekt påpekade, skapa en typ av schemanivå (SQL) eller använda en som är tillgänglig för dig via ODCIConst paket - odcidatelist eftersom du tänker använda en lista med datum. Din markördefinition kan till exempel se ut så här:

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

ELLER

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)

Obs:Du bör ta hänsyn till tidsdelen av ett datum när du utför en datumjämförelse. Om du bara vill jämföra datumdelen skulle det förmodligen vara användbart att bli av med tidsdelen genom att använda trunc() fungera.



  1. mySQL lagrad procedur för att dela strängar med avgränsare

  2. Hur gör man MySQL + Substring? + byta ut?

  3. Spark SQL och MySQL- SaveMode.Skriv över utan att infoga modifierade data

  4. Är det möjligt att ansluta min Android-app till mysql-databasen utan PHP.?