sql >> Base de Datos >  >> RDS >> Oracle

problema al usar los parámetros de Oracle en SELECT IN

Para pasar un conjunto de valores, debe usar los tipos de matriz o tabla de Oracle.

Al principio, crea un tipo de tabla (por ejemplo, para NÚMERO):

CREATE TYPE number_table AS TABLE OF NUMBER; 

Cuando cree el parámetro para la consulta, declárelo como una matriz PL/SQL asociativa:

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

Luego asigna algunos valores:

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

Y su consulta necesita un molde:

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