Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle.DataAccess (ODP.NET) सरणी बाइंडिंग मान अपेक्षित सीमा के भीतर नहीं आता है

मुझे लगता है कि आप एक ऐरे बाइंड को मर्ज करने का प्रयास कर रहे हैं एक एसोसिएटिव एरे के साथ {बस एक सरणी को एक पैरामीटर से कई बार निष्पादित करने के लिए बाध्य करना - आपके द्वारा प्रदान किए गए लिंक में उदाहरण ने ऐसा किया} {पुनः: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




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cx_Oracle के माध्यम से उपयोगकर्ता परिभाषित प्रकार से डेटा निकालें

  2. ऑरैकल स्टेटमेंट ट्रेस करें

  3. Oracle फ़ज़ी टेक्स्ट सर्च

  4. Oracle में सप्ताहवार डेटा कैसे प्राप्त करें

  5. ऑरैकल में उप-चयन करें