當我運行帶參數的查詢或命令時,為什麼Dapper會拋出OracleException?

dapper exception oracle oracle11g orm

我是評價精緻但我已經遇到了一些問題。

我想這樣做

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:缺少表達式OracleException

using (var reader = cmd.ExecuteReader())

當我刪除參數時,我將整個表放入結果變量中。

查詢在sqldeveloper中沒有問題。我正在使用Oracle.DataAccess Assembly 2.112.2.0

一般承認的答案

我認為oracle對命名參數有不同的架構,你試過:a而不是@a


熱門答案

是的,如果我們嘗試在oracle數據庫表中插入記錄,它與“:”一起使用。

試試這樣:

var count = connection.Execute(@"INSERT INTO COMPANY_USER(UserId , UserName) values (:UserId, :UserName)", new[] { new { UserId = 1, UserName = "Sam" }, new { UserId = 2, UserName = "Don" }, new { UserId = 3, UserName = "Mike" } });


許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因