Dapper和Oracle参数化查询-ORA-01036:非法的变量名称/编号
本文关键字:非法 变量名 编号 -ORA-01036 Oracle 参数 查询 Dapper | 更新日期: 2023-09-27 18:22:19
我目前正在试用Dapper。以下代码完美工作:
using (var conn =
new OracleConnection(
"Uid=dbusr;Pwd=dbusrpwd;Server=oraserver;"))
{
var col =
conn.Query<User>(
"SELECT * FROM Users WHERE UserName = 'uid01'"
, null)
.ToList();
}
但是,如果我不使用硬编码的参数,而是尝试通过一个参数化查询和一个匿名类来传递它,比如:
using (var conn =
new OracleConnection(
"Uid=dbusr;Pwd=dbusrpwd;Server=oraserver;"))
{
var col =
conn.Query<User>(
"SELECT * FROM Users WHERE UserName = @Id"
, new { Id = "uid01" })
.ToList();
}
我收到以下错误:
ORA-01036:非法的变量名称/编号
我在SO周围搜索,但没有发现类似的错误报告;我似乎错过了一些显而易见的东西,但唉,我的咖啡没了。如果有任何提示,我将不胜感激。
在oracle的SQL风格中,命名参数以:
为前缀。尝试:Id
而不是@Id
。