我一直在尝试使用此脚本插入到Oracle表中:
Try
conn.Close()
conn.Open()
cmd.CommandText = "INSERT INTO PERSONAL(KODEPERSON) VALUES(:KODE)"
cmd.Parameters.Add(":KODE", "AN001")
cmd.Connection = conn
cmd.ExecuteNonQuery()
MessageBox.Show("SUCESS")
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
但是当我在 VB.NET 中执行此操作时,它会在执行非查询中引发错误 ORA-01036
有人可以告诉我发生了什么吗?
谢谢大家,我一直在挣扎大约 1 个小时,现在我得到了解决方案,请注意,如果我们在任何语句中已经使用它时将 Oracle 命令声明为公共命令,请注意我们必须处理它,以便它不再保留以前的语句缓存。上帝保佑大家
尝试更改cmd.Parameters.Add(":KODE", "AN001")自cmd.Parameters.Add("KODE", "AN001")
如果你使用的是Microsoft的OracleClient
,你不需要在Parameters.Add
中使用冒号:
cmd.Parameters.Add("KODE", "AN001")
从文档中:
对于
Oracle
,在SQL
语句或存储过程中使用命名参数时,必须在参数名称前面加上冒号 (:
)。但是,在代码中的其他位置引用命名参数时(例如,调用Add
时),不要在命名参数前面加上冒号 (:
)。.NET Framework Data Provider for Oracle
自动提供冒号。
更新:
用
cmd.Parameters.AddWithValue("KODE", "AN001")