【发布时间】:2018-03-15 22:49:50
【问题描述】:
我是评估员,但我已经遇到了一些问题。
我正在尝试这样做
using (IDbConnection connection = GetConnection())
{
connection.Open();
var result = connection.Query(
"select * from myTable where ID_PK = @a;", new { a = 1 });
}
它在 SqlMapper.cs 的第 393 行抛出 ORA-00936: missing expression OracleException
using (var reader = cmd.ExecuteReader())
当我删除参数时,我会将整个表放入结果变量中。
查询在 sqldeveloper 中没有问题。我正在使用 Oracle.DataAccess 程序集 2.112.2.0
【问题讨论】:
-
我认为 oracle 对命名参数有不同的架构,您是否尝试过 :a 而不是 @a ?
-
这是 dapper 中命名参数的架构。 Dapper 应该处理不同的 rdbms 模式
-
好吧,我以为 Dapper 只是使用 Ado.Net,而且由于查询是字符串,所以参数的格式是相关的。由于我似乎没有足够的知识,所以最后一个提示:stackoverflow.com/questions/6212992/using-dapper-with-oracle 提到了 oracle 参数的问题(现在应该修复) - 也许你可以检查一下。祝你好运。
-
好吧,我傻了。伯恩哈德,你是绝对正确的,它必须是:a 请输入你的第一条评论作为接受的答案。米(
-
对我的评论投赞成票会很好,因为它似乎有帮助...
标签: oracle exception orm oracle11g dapper