sql >> Database teknologi >  >> RDS >> Oracle

ORA-00933:SQL-kommando blev ikke afsluttet korrekt

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



  1. Tidsstempel med en millisekunds præcision:Sådan gemmer du dem i MySQL

  2. Hvordan tilføjer man en auto-incrementing primær nøgle til en eksisterende tabel i PostgreSQL?

  3. Databasesikkerhed i Oracle

  4. Er det muligt at bruge retur i lagret procedure?