在使用.Net使用OracleParameter进行Oracle数据库操作的时候,不少程序员习惯性的使用SqlParameter的语法来定义参数,此时会发生操作失败提示,提示信息为:ORA-01036: illegal variable name/number

这是因为Oracle和SQLServer针对查询参数化的语法不同,在操作SQLServer的时候使用的是@ParameterName,而Oracle使用的是:ParameterName

而且sql伪语句也有相应的变化,找了好久的资料,都没找到,结果仔细分析了Oracle查询的赋值语法,终于把问题给解决了,对比一下sqlserver和oracle的区别:

 String sql = "delete from postinfo where id=@id";

 SqlParameter p1 = new SqlParameter("@id", id);

 String sql = "delete from postinfo where id=:id";

 OracleParameter p1 = new OracleParameter("id", id);

另外就是需要检查数据类型是否相符,此处附上Oracle和SQLServer在C#中的数据类型对照表。

 

Oracle在C#中的数据类型对照表

ADO.NET 与 ORACLE

SQLServer在C#中的数据类型对照表

ADO.NET 与 ORACLE

相关文章:

  • 2022-03-03
  • 2022-12-23
  • 2021-05-20
  • 2022-12-23
  • 2021-05-15
  • 2021-10-16
  • 2021-10-22
  • 2022-12-23
猜你喜欢
  • 2021-12-12
  • 2021-12-29
  • 2021-08-29
  • 2022-02-23
  • 2022-12-23
  • 2021-08-18
相关资源
相似解决方案