ADO.NET 与 ORACLE

在使用.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#中的数据类型对照表

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

posted @ 2013-01-06 14:14  dogxuefeng  阅读(439)  评论(0编辑  收藏  举报