.net में, जब हम अंत में अर्धविराम के साथ एकल Oracle SQL कथन निष्पादित करने का प्रयास करते हैं। परिणाम एक ऑरैकल त्रुटि होगी:ora-00911:अमान्य वर्ण। ठीक है, आप समझते हैं कि एक SQL कथन को अर्धविराम की आवश्यकता नहीं है, लेकिन उदाहरण के लिए एक स्ट्रिंग में 2 SQL कथन निष्पादित करने के बारे में क्या:
Dim db As Database = DatabaseFactory.CreateDatabase("db")
Dim cmd As System.Data.Common.DbCommand
Dim sql As String = ""
sql = "DELETE FROM iphone_applications WHERE appid = 1; DELETE FROM iphone_applications WHERE appid = 2; "
cmd = db.GetSqlStringCommand(sql)
db.ExecuteNonQuery(cmd)
उपरोक्त कोड आपको वही Oracle त्रुटि देगा:ora-00911:अमान्य वर्ण।
इस समस्या का समाधान आपके 2 Oracle SQL कथनों को BEGIN
. के साथ लपेटना है और END;
वाक्य रचना, उदाहरण के लिए:
sql = "BEGIN DELETE FROM iphone_applications WHERE appid = 1; DELETE FROM iphone_applications WHERE appid = 2; END;"
सौजन्य:http://www.lazyasscoder.com/Article.aspx?id=89&title=ora-00911%3A+invalid+character+when+executing+multiple+Oracle+SQL+statements