15

我正在做类似的事情

...
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();所以我认为我的连接字符串是正确的。

我在哪一部分犯了错误?

4

2 回答 2

32

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

原因:绑定变量或 INTO 规范中的冒号后跟不适当的名称,可能是保留字。

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

这里

要检查什么是保留字,请单击此处

于 2013-04-19T12:09:13.753 回答
0

环绕一个 oracle 连接using块并提供正确的连接字符串。

using (OracleConnection con = new OracleConnection(connectionString)) {
    OracleCommand oCommand = new OracleCommand(queryString, connection);
    ....
}
于 2013-04-19T12:14:21.453 回答