Trong .net, khi chúng ta cố gắng thực thi một câu lệnh Oracle SQL duy nhất có dấu chấm phẩy ở cuối. Kết quả sẽ là một lỗi tiên tri:ora-00911:ký tự không hợp lệ. OK, bạn nghĩ rằng một câu lệnh SQL không cần dấu chấm phẩy, nhưng còn việc thực thi 2 câu lệnh SQL trong một chuỗi thì sao:
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)
Đoạn mã trên sẽ cung cấp cho bạn cùng một lỗi Oracle:ora-00911:ký tự không hợp lệ.
Giải pháp cho vấn đề này là bọc 2 câu lệnh Oracle SQL của bạn bằng một BEGIN
và END;
cú pháp, ví dụ:
sql = "BEGIN DELETE FROM iphone_applications WHERE appid = 1; DELETE FROM iphone_applications WHERE appid = 2; END;"
Được phép:http://www.lazyasscoder.com/Article.aspx?id=89&title=ora-00911%3A+invalid+character+when+executing+multiple+Oracle+SQL+statements