पर कॉल करें मेरे पास एक पीएल/एसक्यूएल संग्रहीत प्रक्रिया है जो 4 इनपुट लेती है। उन इनपुटों में से एक एक एसोसिएटिव सरणी है (ओरेकल टाइप: PLS_INTEGER द्वारा VARCHAR2 (1) इंडेक्स की तालिका)।सी # 2010, ओडीपी.net, संग्रहीत प्रक्रिया कॉलिंग सरणी
मैं एक सी # प्रोग्राम चाहता हूं जो इस संग्रहीत प्रक्रिया को सहयोगी सरणी सहित उचित इनपुट के साथ कॉल करता है।
मैं दृश्य सी # 2010 एक्सप्रेस और ओरेकल 11 जीआर 2 के साथ ओडीपी.net 11.2 का उपयोग कर रहा हूं।
मुझे सी # से एक pl/sql प्रक्रिया में सरणी को पारित करने के बारे में कोई अच्छा उदाहरण नहीं मिल रहा है। क्या कोई मुझे एक उदाहरण दे सकता है? ओरेकल दस्तावेज़ीकरण के बाद मुझे गलत संख्या या तर्कों के प्रकार कहने में त्रुटि मिलती है।
मेरे सी # कोड:
OracleCommand cmd = new OracleCommand("begin sdg_test.sdg_test2(:1); end;", conn);
OracleParameter Param1 = cmd.Parameters.Add("1", OracleDbType.Varchar2);
Param1.Direction = ParameterDirection.Input;
Param1.CollectionType = OracleCollectionType.PLSQLAssociativeArray;
Param1.Value = new string[22] { "Y", "Y", "N", "Y", "N", "Y", "Y", "Y", "Y", "Y", "N", "Y", "N", "Y", "Y", "Y", "Y", "Y", "N", "Y", "N", "Y" };
Param1.Size = 22;
Param1.ArrayBindSize = new int[22] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
cmd.ExecuteNonQuery();
conn.Close();
conn.Dispose();
मेरे सभी प्रक्रिया करता है संदेश लॉग ऑन है। मैं बस इस अवधारणा को काम करने की कोशिश कर रहा हूं।
जवाब के लिए धन्यवाद। मैं इसे एक शॉट दूंगा। – user2316634
जब मैं TYPE integer_list चलाता हूं I_table.id_cloumn% TYPE INDEX BINARY_INTEGER द्वारा तालिका है; यह अमान्य एसक्यूएल स्टेटमेंट –
दिखाता है 'टाइप या पुन: स्थापित करें कोशिश करें inst_id_list INSTRUMENT.Inst_Id% TYPE INDEX द्वारा BINARY_INTEGER का सार है; '। आपको EvgenyL के सुझाए गए तर्कों को वास्तविक वस्तुओं के साथ प्रतिस्थापित करने की आवश्यकता है जो पहले से ही आपके डीबी में मौजूद हैं। (यानी inst_id तालिका INSTRUMENT में एक फ़ील्ड है)। – dipdapdop