sql >> Databáze >  >> RDS >> Oracle

problém s použitím parametrů Oracle v SELECT IN

Chcete-li předat sadu hodnot, musíte použít typy tabulek nebo polí Oracle.

Nejprve vytvoříte typ tabulky (např. pro NUMBER):

CREATE TYPE number_table AS TABLE OF NUMBER; 

Když vytvoříte parametr pro dotaz, deklarujte jej jako asociativní pole PL/SQL:

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

Potom přiřaďte nějaké hodnoty:

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

A váš dotaz vyžaduje obsazení:

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


  1. 4 způsoby, jak najít řádky, které obsahují velká písmena v PostgreSQL

  2. Jak fungují implicitní transakce na serveru SQL Server

  3. Měření výkonu dotazu:Náklady na dotaz podle plánu realizace vs. čas

  4. Jak ladit překročení časového limitu čekání na zámek na MySQL?