sql >> Base de Datos >  >> RDS >> Oracle

ORA-00933:el comando SQL no finalizó correctamente

En .net, cuando tratamos de ejecutar una sola instrucción SQL de Oracle con un punto y coma al final. El resultado será un error de Oracle:ora-00911:carácter no válido. De acuerdo, cree que una declaración SQL no necesita el punto y coma, pero ¿qué hay de ejecutar 2 declaraciones SQL en una cadena, por ejemplo:

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)

El código anterior le dará el mismo error de Oracle:ora-00911:carácter no válido.

La solución a este problema es envolver sus 2 declaraciones Oracle SQL con un BEGIN y END; sintaxis, por ejemplo:

sql = "BEGIN DELETE FROM iphone_applications WHERE appid = 1; DELETE FROM iphone_applications WHERE appid = 2; END;"

Cortesía:http://www.lazyasscoder.com/Article.aspx?id=89&title=ora-00911%3A+invalid+character+when+executing+multiple+Oracle+SQL+statements