最近用Oracle比较多,一换数据库环境才会感觉到ADO.NET是个好东西,以前用SQL Server的方式几乎能完全套用,但也有些不太一致的地方,记录一下:
1. ADO.NET的Assembly,.NET Framework中的已经不被推荐使用,所以一般安装Oracle官方的Client(要求注册),会将Oracle.DataAccess.dll安装到GAC中,然后引用它。
2. 在代码中,除SQL语句有一些差异外,主要注意如果要一次执行多条SQL语句,前面要加Begin,最后加End和分号,每条SQL语句间要加分号,麻烦一点。
3. 数据库函数不能直接返回结果集,要通过游标参数,也稍麻烦一点。
4. SQL Server2008起开始支持table类型存储过程参数,但对于Oracle没找到合适的办法。前不久遇到个这样的问题,最后是通过传递表对应的XML参数解决的。
Oracle还有点让人不爽,就是所有表、视图名称一律显示成大写,大家只能用下划线来组织名称的不同部分,每次要打那样的名称就难受,好在当初没有学C++和php。