sql >> Databasteknik >  >> RDS >> Oracle

ORA-00933:SQL-kommandot avslutades inte korrekt

I .net, när vi försöker köra en enda Oracle SQL-sats med semikolon i slutet. Resultatet blir ett orakelfel:ora-00911:ogiltigt tecken. OK, du tror att en SQL-sats inte behöver semikolon, men vad sägs om att köra 2 SQL-satser i en sträng till exempel:

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 ovan ger dig samma Oracle-fel:ora-00911:ogiltigt tecken.

Lösningen på det här problemet är att slå in dina två Oracle SQL-satser med en BEGIN och END; syntax, till exempel:

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

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



  1. Fråga för att få alla rader från föregående månad

  2. Förhindrar SQL-injektion i Node.js

  3. Specialtecken i MySQL-tabellnamn

  4. COALESCE() Funktion i Oracle