gpt4 book ai didi

c# - Dapper 和 Oracle 参数化查询 - ORA-01036 : illegal variable name/number

转载 作者:行者123 更新时间:2023-11-30 20:24:49 31 4
gpt4 key购买 nike

我目前正在试用 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: illegal variable name/number

找了一圈SO,没有发现类似的报错;看来我遗漏了一些非常明显的东西,但是唉——我的咖啡用完了。如果有任何提示,我将不胜感激。

最佳答案

在 oracle 风格的 SQL 中,命名参数以 : 为前缀。尝试 :Id 而不是 @Id

关于c# - Dapper 和 Oracle 参数化查询 - ORA-01036 : illegal variable name/number,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25900189/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com