sql >> Database >  >> RDS >> Oracle

ORA-00933:SQL-opdracht niet correct beëindigd

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



  1. Hoe u uw PostgreSQL-databases kunt beschermen tegen cyberaanvallen met SQL Firewall

  2. Is er een verschil tussen SQL Server Express (2012) en LocalDB?

  3. MySQL:record invoegen indien niet aanwezig in tabel

  4. Postgres-functie NULL-waarde voor rij die verwijst naar NEW