sql >> Databáze >  >> RDS >> Oracle

ORA-00933:Příkaz SQL nebyl správně ukončen

V .net, když se snažíme provést jeden SQL příkaz Oracle se středníkem na konci. Výsledkem bude chyba oracle:ora-00911:neplatný znak. Dobře, víte, že jeden příkaz SQL nepotřebuje středník, ale co třeba provedení 2 příkazů SQL v jednom řetězci:

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)

Výše uvedený kód vám poskytne stejnou chybu Oracle:ora-00911:neplatný znak.

Řešením tohoto problému je zabalit 2 příkazy Oracle SQL do BEGIN a END; syntaxe, například:

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

S laskavým svolením:http://www.lazyasscoder.com/Article.aspx?id=89&title=ora-00911%3A+invalid+character+when+executing+multiple+Oracle+SQL+příkazy



  1. Řešení s vysokou závažností chyb v SQL Server

  2. Typy kurzoru serveru SQL Server – pouze vpřed dynamický kurzor | Kurz SQL Server / Kurz TSQL

  3. Vlastní kalendář a připomenutí pro Android

  4. SQL Server 2016:Dopad na výkon funkce Always Encrypted