Oracle memungkinkan Anda untuk melewatkan array nilai sebagai parameter. Meminjam dari pertanyaan SO ini dan yang ini Anda dapat mendefinisikan INT_ARRAY
ketik seperti ini:
create or replace type CHAR_ARRAY as table of INTEGER;
Kemudian tentukan prosedur tersimpan Anda sebagai:
CREATE OR REPLACE PROCEDURE product_search(
...
myIds IN CHAR_ARRAY,
...)
AS
SELECT ...
...
WHERE SomeIdField IN (Select column_value FROM TABLE(myIds))
...
Anda kemudian dapat meneruskan daftar nilai dengan menyetel properti OracleParameter.CollectionType seperti ini:
OracleParameter param = new OracleParameter();
param.OracleDbType = OracleDbType.Int32;
param.CollectionType = OracleCollectionType.PLSQLAssociativeArray;