Di .net, ketika kami mencoba mengeksekusi satu pernyataan Oracle SQL dengan titik koma di akhir. Hasilnya akan menjadi kesalahan Oracle:ora-00911:karakter tidak valid. Oke, Anda tahu bahwa satu pernyataan SQL tidak memerlukan titik koma, tetapi bagaimana dengan mengeksekusi 2 pernyataan SQL dalam satu string misalnya:
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)
Kode di atas akan memberi Anda kesalahan Oracle yang sama:ora-00911:karakter tidak valid.
Solusi untuk masalah ini adalah dengan membungkus 2 pernyataan Oracle SQL Anda dengan BEGIN
dan END;
sintaks, misalnya:
sql = "BEGIN DELETE FROM iphone_applications WHERE appid = 1; DELETE FROM iphone_applications WHERE appid = 2; END;"
Atas perkenan:http://www.lazyasscoder.com/Article.aspx?id=89&title=ora-00911%3A+invalid+character+when+executing+multiple+Oracle+SQL+statements