Oracle आपको पैरामीटर के रूप में मानों के सरणियों को पास करने की अनुमति देता है। इस SO प्रश्न से उधार लेना और यह आप एक INT_ARRAY
. को परिभाषित कर सकते हैं इस तरह टाइप करें:
create or replace type CHAR_ARRAY as table of INTEGER;
फिर अपनी संग्रहीत कार्यविधि को इस प्रकार परिभाषित करें:
CREATE OR REPLACE PROCEDURE product_search(
...
myIds IN CHAR_ARRAY,
...)
AS
SELECT ...
...
WHERE SomeIdField IN (Select column_value FROM TABLE(myIds))
...
फिर आप OracleParameter.CollectionType प्रॉपर्टी को इस तरह सेट करके मानों की सूची पास कर सकते हैं:
OracleParameter param = new OracleParameter();
param.OracleDbType = OracleDbType.Int32;
param.CollectionType = OracleCollectionType.PLSQLAssociativeArray;