Oracle
 sql >> Baza danych >  >> RDS >> Oracle

PL/SQL — Jak używać tablicy w klauzuli IN

Aby użyć kolekcji zdefiniowanej jako zagnieżdżona tabela lub tablica asocjacyjna w from klauzula zapytania, którą należy, jak słusznie zauważył @Alex Poole, utworzyć typ schematu (SQL) lub użyć takiego, który jest dostępny przez ODCIConst pakiet - odcidatelist jak zamierzasz użyć listy dat. Na przykład twoja definicja kursora może wyglądać tak:

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

LUB

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)

Uwaga:Podczas porównywania dat należy wziąć pod uwagę część czasową daty. Jeśli chcesz porównać tylko część daty, prawdopodobnie przydatne byłoby pozbycie się części czasu za pomocą trunc() funkcjonować.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle Z KLAUZULĄ nie działa?

  2. utwórz tabelę na podstawie typu zdefiniowanego przez użytkownika

  3. Tablica partycji zmienia nazwę automatycznie w ORACLE

  4. Czy w Oracle mogę uniknąć podwójnych cudzysłowów w tytułach kolumn?

  5. SQL — po co dopasowywać spacje podczas porównywania znaków?