Met Oracle kunt u reeksen waarden doorgeven als parameters. Door te lenen van deze SO-vraag en deze kun je een INT_ARRAY
. definiëren typ als volgt:
create or replace type CHAR_ARRAY as table of INTEGER;
Definieer vervolgens uw opgeslagen procedure als:
CREATE OR REPLACE PROCEDURE product_search(
...
myIds IN CHAR_ARRAY,
...)
AS
SELECT ...
...
WHERE SomeIdField IN (Select column_value FROM TABLE(myIds))
...
U kunt de zoeklijst vervolgens doorgeven door de eigenschap OracleParameter.CollectionType als volgt in te stellen:
OracleParameter param = new OracleParameter();
param.OracleDbType = OracleDbType.Int32;
param.CollectionType = OracleCollectionType.PLSQLAssociativeArray;