In .net, wanneer we proberen een enkele Oracle SQL-instructie uit te voeren met een puntkomma aan het einde. Het resultaat is een orakelfout:ora-00911:ongeldig teken. OK, je denkt dat één SQL-instructie de puntkomma niet nodig heeft, maar hoe zit het met het uitvoeren van 2 SQL-instructies in één string bijvoorbeeld:
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)
De bovenstaande code geeft u dezelfde Oracle-fout:ora-00911:ongeldig teken.
De oplossing voor dit probleem is om uw 2 Oracle SQL-instructies in te pakken met een BEGIN
en END;
syntaxis, bijvoorbeeld:
sql = "BEGIN DELETE FROM iphone_applications WHERE appid = 1; DELETE FROM iphone_applications WHERE appid = 2; END;"
Hoffelijkheid:http://www.lazyasscoder.com/Article.aspx?id=89&title=ora-00911%3A+invalid+character+when+executing+multiple+Oracle+SQL+statements