Oracle giver dig mulighed for at videregive arrays af værdier som parametre. Ved at låne fra dette SO-spørgsmål og dette kan du definere en INT_ARRAY
skriv sådan her:
create or replace type CHAR_ARRAY as table of INTEGER;
Definer derefter din lagrede procedure som:
CREATE OR REPLACE PROCEDURE product_search(
...
myIds IN CHAR_ARRAY,
...)
AS
SELECT ...
...
WHERE SomeIdField IN (Select column_value FROM TABLE(myIds))
...
Du kan derefter sende listen over værdier ved at indstille egenskaben OracleParameter.CollectionType sådan her:
OracleParameter param = new OracleParameter();
param.OracleDbType = OracleDbType.Int32;
param.CollectionType = OracleCollectionType.PLSQLAssociativeArray;