मुझे यकीन है कि इस प्रश्न का उत्तर पहले ही दिया जा चुका है, हालांकि मैं खोज टूल का उपयोग करके उत्तर खोजने में असमर्थ था।
C # का उपयोग करके मैं .sql फ़ाइल चलाना चाहता हूँ। Sql फ़ाइल में कई sql कथन होते हैं, जिनमें से कुछ कई लाइनों पर टूट जाते हैं। मैंने फ़ाइल में पढ़ने की कोशिश की और ODP.NET का उपयोग करके फ़ाइल को निष्पादित करने की कोशिश की ... हालांकि मुझे नहीं लगता कि ExecuteNonQuery वास्तव में ऐसा करने के लिए डिज़ाइन किया गया है।
इसलिए मैंने एक प्रक्रिया को स्पैनिंग के माध्यम से sqlplus का उपयोग करने की कोशिश की ... हालांकि जब तक कि मैंने UseShellExecute के साथ प्रक्रिया को सही sqlplus के लिए सेट नहीं किया, तब तक वह लटका रहता और कभी बाहर नहीं निकलता। यहाँ कोड है कि काम नहीं करता है।
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "sqlplus";
p.StartInfo.Arguments = string.Format("xx/xx@{0} @{1}", in_database, s);
p.StartInfo.CreateNoWindow = true;
bool started = p.Start();
p.WaitForExit();
WaitForExit कभी नहीं लौटता है .... जब तक मैं UseShellExecute को सही पर सेट नहीं करता। UseShellExecute का एक साइड इफेक्ट यह है कि आप रीडायरेक्ट आउटपुट को कैप्चर नहीं कर सकते हैं।