.NET: ora-00911: invalid character when executing multiple Oracle SQL statements
This article will show you how to execute multiple Oracle SQL statements
Posted by LazyAssCoder
on Feb 18, 2010
6694 Views
Report Abuse
Tags: ora-00911, Oracle
In .NET, when we try to execute a single Oracle SQL statement with a semicolon at the end. The result will be an oracle error: ora-00911: invalid character. OK, you figure that one SQL statement doesn't need the semicolon, but what about executing 2 SQL statement in one string for example:
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)
The code above will give you the same Oracle error: ora-00911: invalid character.
The solution to this problem is to wrap your 2 Oracle SQL statements with a "BEGIN" and "END;" syntax, for example:
sql = "BEGIN DELETE FROM iphone_applications WHERE appid = 1; DELETE FROM iphone_applications WHERE appid = 2; END;"