You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用C# Dapper操作Oracle插入数据时遇ORA-00933错误求助

解决Dapper操作Oracle时INSERT语句的ORA-00933错误

可能的原因及解决方法

1. 移除语句末尾的分号

Oracle通过.NET驱动执行SQL时,不需要在语句末尾加分号。你当前的INSERT语句最后带了;,这大概率是触发语法错误的原因。修改后的语句:

insert into Car_Names (Model, Descr) values (:Model, :Descr)

2. 排查保留关键字冲突

如果Model或Descr是Oracle保留关键字(虽这两个不属于常见保留字,但可做兜底检查),可以用双引号包裹列名(Oracle用双引号区分特殊名称,注意双引号内的名称要和数据库中列名的大小写完全一致):

insert into Car_Names ("Model", "Descr") values (:Model, :Descr)

3. 确认参数传递正确性

检查C#代码中参数的传递逻辑,确保参数名与SQL中的绑定变量完全匹配,示例代码如下:

var carData = new { Model = "Sedan", Descr = "Family sedan" };
connection.Execute("insert into Car_Names (Model, Descr) values (:Model, :Descr)", carData);

4. 直接在Oracle客户端验证SQL

把去掉分号后的INSERT语句,放到SQL Developer或PL/SQL Developer中直接执行,确认语句本身的语法合法性。如果客户端执行正常,再排查Dapper是否有额外配置干扰了SQL生成逻辑。

内容的提问来源于stack exchange,提问作者Flasher12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 15:07:08