Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

problema usando parâmetros Oracle em SELECT IN


Para passar um conjunto de valores, você precisa usar os tipos de tabela ou array do Oracle.

Primeiro, você cria um tipo de tabela (por exemplo, para NUMBER):
CREATE TYPE number_table AS TABLE OF NUMBER; 

Ao criar o parâmetro para a consulta, declare-o como um array PL/SQL associativo:
OracleParameter param1 = new OracleParameter(); 
param1.OracleDbType = OracleDbType.Int32; 
param1.CollectionType = OracleCollectionType.PLSQLAssociativeArray; 

Em seguida, atribua alguns valores:
param1 = new int[] { 3857, 3858, 3863, 3285 }; 

E sua consulta precisa de um elenco:
SELECT * FROM tablename a 
where a.flokkurid in (TABLE(CAST(:manyNumbers AS number_table)))
order by sjodategund, rodun