oracle - 在 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 或类似的东西进行定制吗?
解决方案
您需要:
在查询参数前使用而不是@
. 这是甲骨文的事情。
var item = new Item { Name = "Test Name", Number = "Test Number" };
await Connection.ExecuteAsync(@"INSERT INTO Table (Name, Number) VALUES (:Name, :Number)", item);
推荐阅读
- android - 在很长一段时间内的特定日期发出通知
- http - JW Player 无法在 https 上运行
- bash - 哪个触发了内部错误?
- php - 如何在 php 查询中使用 $_COOKIE?
- javascript - ES6 Promises 使用的浏览器特性是什么?
- xamarin.forms - 如何使用 Xamarin 表单使用 SAP Odata
- haskell - GHC 如何推断此 GADT 的预期类型?
- c# - 无法将当前 JSON 对象(例如 {"name":"value"})反序列化为 ASP.NET MVC 中的类型 'System.Collections.Generic.List`1
- java - 什么 Java TLS 操作会在握手时产生致命错误?
- javascript - 对象被复制,但我想要原件