Oracle
 sql >> база данни >  >> RDS >> Oracle

ORA-00933:SQL командата не е приключила правилно

В .net, когато се опитваме да изпълним единичен SQL оператор на Oracle с точка и запетая в края. Резултатът ще бъде грешка в оракула:ora-00911:невалиден знак. Добре, смятате, че един SQL израз не се нуждае от точка и запетая, но какво да кажем за изпълнение на 2 SQL оператора в един низ например:

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)

Кодът по-горе ще ви даде същата грешка на Oracle:ora-00911:невалиден знак.

Решението на този проблем е да обвиете вашите 2 Oracle SQL оператора с BEGIN и END; синтаксис, например:

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

С любезното съдействие: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. текстово търсене на Oracle blob

  2. Oracle (Oracle?) Joins - инструмент/скрипт за преобразуване?

  3. Как да получа информация за собственик на индекс и таблица в Oracle?

  4. TEMPFILE Офлайн физическа готовност

  5. Как мога да получа достъп до Oracle от Python?