sql >> Database teknologi >  >> RDS >> Oracle

problem med at bruge Oracle-parametre i SELECT IN

For at videregive et sæt værdier skal du bruge Oracles tabel- eller matrixtyper.

Først opretter du en tabeltype (f.eks. for NUMBER):

CREATE TYPE number_table AS TABLE OF NUMBER; 

Når du opretter parameteren for forespørgslen, skal du erklære den som en associativ PL/SQL-array:

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

Tildel derefter nogle værdier:

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

Og din forespørgsel har brug for en cast:

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


  1. Tabel bliver ikke oprettet sqlite android

  2. Sådan opretter du tabel ved at bruge GUI i SQL Server - SQL Server / T-SQL Tutorial Del 37

  3. Sådan konverteres små bogstaver til store bogstaver i MySQL

  4. Openshift og net-ssh inkompatibilitet? (2.9.3-beta1 vs. 2.9.2)