Om een collectie te gebruiken die is gedefinieerd als een geneste tabel of een associatieve array in de from
clausule van een query moet u ofwel, zoals @Alex Poole terecht opmerkte, een type op schemaniveau (SQL) maken of er een gebruiken, die voor u beschikbaar is via ODCIConst
pakket - odcidatelist
aangezien u van plan bent een lijst met datums te gebruiken. Uw cursordefinitie kan er bijvoorbeeld als volgt uitzien:
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))
OF
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)
Opmerking:u moet rekening houden met het tijdsgedeelte van een datum bij het uitvoeren van een datumvergelijking. Als u alleen het datumgedeelte wilt vergelijken, is het waarschijnlijk handig om het tijdgedeelte te verwijderen door trunc()
te gebruiken functie.