sql >> Databasteknik >  >> RDS >> Oracle

problem med att använda Oracle-parametrar i SELECT IN

För att skicka en uppsättning värden måste du använda Oracles tabell- eller matristyper.

Först skapar du en tabelltyp (t.ex. för NUMBER):

CREATE TYPE number_table AS TABLE OF NUMBER; 

När du skapar parametern för frågan, deklarera den som en associativ PL/SQL-array:

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

Tilldela sedan några värden:

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

Och din fråga behöver en cast:

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


  1. Hur UUID_SHORT() fungerar i MariaDB

  2. Ansluter till MySQL med Python

  3. SQLite och databasinitiering

  4. Hur man hittar kolumnnamn för alla tabeller i alla databaser i SQL Server