Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Problem mit Oracle-Parametern in SELECT IN

Um eine Reihe von Werten zu übergeben, müssen Sie die Tabellen- oder Array-Typen von Oracle verwenden.

Zunächst erstellen Sie einen Tabellentyp (z. B. für ZAHL):

CREATE TYPE number_table AS TABLE OF NUMBER; 

Wenn Sie den Parameter für die Abfrage erstellen, deklarieren Sie ihn als assoziatives PL/SQL-Array:

OracleParameter param1 = new OracleParameter(); 
param1.OracleDbType = OracleDbType.Int32; 
param1.CollectionType = OracleCollectionType.PLSQLAssociativeArray; 

Weisen Sie dann einige Werte zu:

param1 = new int[] { 3857, 3858, 3863, 3285 }; 

Und Ihre Abfrage benötigt eine Umwandlung:

SELECT * FROM tablename a 
where a.flokkurid in (TABLE(CAST(:manyNumbers AS number_table)))
order by sjodategund, rodun