首页 > 解决方案 > 在 Oracle 上使用 Dapper 进行简单插入

问题描述

我想使用 Dapper 将数据库无关代码用于 PostgreSQL 和 Oracle,并尽可能少地使用 db 风格的代码。此 INSERT 代码在 SQL-server 和 PostgreSQL 上运行没有问题:

var item = new Item { Name = "Test Name", Number = "Test Number" };
await Connection.ExecuteAsync(@"INSERT INTO Table (Name, Number) VALUES (@Name, @Number);", item);

在 Oracle(版本 11 xe)上,我得到一个 ORA-00936: missing expression。

我需要使用 DynamicParameters 或类似的东西进行定制吗?

标签: oracle

解决方案


您需要:在查询参数前使用而不是@. 这是甲骨文的事情。

var item = new Item { Name = "Test Name", Number = "Test Number" };
await Connection.ExecuteAsync(@"INSERT INTO Table (Name, Number) VALUES (:Name, :Number)", item);

推荐阅读