मुझे लगता है कि आप एक ऐरे बाइंड को मर्ज करने का प्रयास कर रहे हैं एक एसोसिएटिव एरे के साथ {बस एक सरणी को एक पैरामीटर से कई बार निष्पादित करने के लिए बाध्य करना - आपके द्वारा प्रदान किए गए लिंक में उदाहरण ने ऐसा किया} {पुनः:PLSQLAssociativeArray तालिका के इनपुट पैरामीटर के साथ}।
चूंकि आपने अपना पैकेज/प्रोक पोस्ट नहीं किया है जिसे आप चला रहे हैं, मैं मान रहा हूं कि आप ऐसा कुछ कर रहे हैं (केवल धारणा को मान्य करने के लिए इसे नीचे रखें)
procedure insertdata(P_JOB_TITLE IN VARCHAR2) as
begin
insert into myTable(x) value (P_JOB_TITLE);
end insertdata;
लेख के लेखक की तरह इसे निष्पादित करने के लिए आपको ArrayBindCount ( इस लिंक को देखें, इसका एक उदाहरण भी है) .यह भी इंगित करता है, यदि आपके पास एकाधिक पैरामीटर हैं, तो यह प्रत्येक के लिए एक ARRAY की अपेक्षा करेगा।
अब इसे उन सभी P_JOB_TITLE () के लिए निष्पादित करने के लिए जिसमें आप पास करते हैं
//this was missing in your example and MUST be there to tell ODP how many array elements to expect
cmd.ArrayBindCount = 2;
string[] jobTitleArray = {"name1", "name1"};
OracleParameter paramNames= new OracleParameter("P_JOB_TITLE", OracleDbType.Varchar2);
//paramNames.CollectionType = OracleCollectionType.PLSQLAssociativeArray;/*once again, you are passing in an array of values to be executed and not a pl-sql table*/
//paramNames.Size = 2; /* this is unnecessary since it is for a plsql-associative array*/
paramNames.Value = jobTitleArray ;
cmd.Parameters.Add(paramNames);
एक plSQLAssociativeArray उदाहरण के लिए जब आप ODP @ %ORA_HOME%\odp.net\samples\2.x\AssocArray
स्थापित करते हैं तो प्रदान किए गए नमूनों पर एक नज़र डालें।और सरणी बाइंड उदाहरणों के लिए (जैसा कि आपके द्वारा प्रदान किए गए लिंक से)@ %ORA_HOME%\odp.net\samples\2.x\ArrayBind