I .net, når vi forsøger at udføre en enkelt Oracle SQL-sætning med et semikolon i slutningen. Resultatet vil være en orakelfejl:ora-00911:ugyldigt tegn. OK, du regner med, at en SQL-sætning ikke behøver semikolon, men hvad med at udføre 2 SQL-sætninger i én streng, for eksempel:
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)
Koden ovenfor giver dig den samme Oracle-fejl:ora-00911:ugyldigt tegn.
Løsningen på dette problem er at pakke dine 2 Oracle SQL-sætninger med en BEGIN
og END;
syntaks, for eksempel:
sql = "BEGIN DELETE FROM iphone_applications WHERE appid = 1; DELETE FROM iphone_applications WHERE appid = 2; END;"
Høflighed:http://www.lazyasscoder.com/Article.aspx?id=89&title=ora-00911%3A+invalid+character+when+executing+multiple+Oracle+SQL+ statements