Oracle
 sql >> Baza danych >  >> RDS >> Oracle

ORA-00933:Polecenie SQL nie zostało poprawnie zakończone

W .net, gdy próbujemy wykonać pojedynczą instrukcję Oracle SQL ze średnikiem na końcu. Wynikiem będzie błąd wyroczni:ora-00911:nieprawidłowy znak. OK, domyślasz się, że jedna instrukcja SQL nie potrzebuje średnika, ale co z wykonaniem dwóch instrukcji SQL w jednym ciągu, na przykład:

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)

Powyższy kod da ci ten sam błąd Oracle:ora-00911:nieprawidłowy znak.

Rozwiązaniem tego problemu jest umieszczenie 2 instrukcji Oracle SQL w BEGIN i END; składnia, na przykład:

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

Dzięki uprzejmości:http://www.lazyasscoder.com/Article.aspx?id=89&title=ora-00911%3A+invalid+character+when+executing+multiple+Oracle+SQL+statements



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Korzyści z nauki nowych systemów DB

  2. Zrozumienie różnic między Table a Transaction API

  3. Baza danych menedżera pakietów RPM GI 19c

  4. Jak używać kursora referencji Oracle z języka C# ODP.NET jako parametru ReturnValue bez użycia funkcji lub procedury przechowywanej?

  5. Polecenie Oracle CREATE TABLE w PL/SQL z 10 przykładami