sql >> Database >  >> RDS >> Oracle

probleem met Oracle-parameters in SELECT IN

Om een ​​reeks waarden door te geven, moet u de tabel- of arraytypen van Oracle gebruiken.

Eerst maakt u een tabeltype aan (bijvoorbeeld voor NUMBER):

CREATE TYPE number_table AS TABLE OF NUMBER; 

Wanneer u de parameter voor de query maakt, declareert u deze als een associatieve PL/SQL-array:

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

Wijs vervolgens enkele waarden toe:

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

En je vraag heeft een cast nodig:

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


  1. Maak verbinding met een externe PostgreSql-database met Powershell

  2. mysqldump Best Practices:Deel 2 – Migratiegids

  3. Hoe LOAD_FILE gebruiken om een ​​bestand in een MySQL-blob te laden?

  4. Meerdere rijen samenvoegen tot één kolom in MySQL