sql >> Database teknologi >  >> RDS >> Oracle

PL/SQL - Sådan bruges et array i en IN-klausul

For at bruge samling defineret som en indlejret tabel eller en associativ matrix i from klausul i en forespørgsel, du skal enten, som @Alex Poole korrekt påpegede, oprette en skemaniveau (SQL) type eller bruge en, som er tilgængelig for dig gennem ODCIConst pakke - odcidatelist da du agter at bruge en liste over datoer. For eksempel kan din markørdefinition se sådan ud:

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)

Bemærk:Du bør tage tidsdelen af ​​en dato i betragtning, når du udfører en datosammenligning. Hvis du kun vil sammenligne datodelen, ville det sandsynligvis være nyttigt at slippe af med tidsdelen ved at bruge trunc() fungere.



  1. MySQL Group By for at vise seneste resultat

  2. Jeg har brug for hjælp til at afslutte denne dynamiske dropdown på 3 niveauer

  3. Hvordan man transformerer data fra rækker baseret på en specifik kolonne til en anden datastruktur

  4. Sådan beregnes samlede rejsetimer mellem by x og y og omvendt