在c#中执行参数化查询时出现ORA-01745错误

时间:2013-04-19 12:04:29

标签: c# .net oracle

我正在做类似

的事情
...
OracleCommand oCommand = new OracleCommand();
oConnection.Open();
oCommand.Connection = oConnection;
oCommand.CommandText = "SELECT * FROM employees WHERE user = :User";
oCommand.Parameters.AddWithValue(":Name", "Employee1");

DbDataReader dbRdr = oCommand.ExecuteReader();

然后会引发异常:

  

ORA-01745:无效的主机/绑定变量名称

编辑:连接字符串如下所示:

"Data Source=orcl;Persist Security Info=True;User ID=user_id;Password=pwd;Unicode=True"

oConnection.Open();后没有错误,所以我假设我的连接字符串是正确的。

我犯了哪个错误?

2 个答案:

答案 0 :(得分:24)

  

ORA-01745 :无效的主机/绑定变量名称

     

原因:绑定变量或INTO规范中的冒号后跟一个   不恰当的名字,也许是一个保留字。

     

操作:更改变量名称并重试操作。

来自here

要查看保留字词是什么,请点击here

答案 1 :(得分:0)

绕过oracle连接using阻塞并提供正确的connectionString。

using (OracleConnection con = new OracleConnection(connectionString)) {
    OracleCommand oCommand = new OracleCommand(queryString, connection);
    ....
}