我正在尝试将我在ODP.NET 11g上构建的现有应用程序升级到ODP.NET 12c,希望它能提高数据库调用和数据检索的性能。在这方面,我安装了最新的ODP.NET 12c,并将所有Oracle项目引用更改为指向最新的Oracle.ManagedDataAccess.dll
而不是Oracle.DataAccess.dll
。
当项目成功构建时,我看到一个异常,在尝试检索数据时从ExecuteReader方法抛出“不支持的列数据类型”。可悲的是,我没有与例外相关的ORA代码可供我进一步搜索。
有人知道manageddataaccess.dll是否支持某些数据类型?如果我用它的非托管版本(Oracle.ManagedDataAccess.dll)替换它,它似乎有效。
答案 0 :(得分:2)
编辑:从ODAC 12c第3版(2014年12月发布)开始,ODP.NET,托管驱动程序现在支持XMLType。如果您遇到类似这里提到的问题,请升级。
请注意,还有12c版本的Oracle.DataAccess.dll(ODP.NET,非托管驱动程序)
您是否在数据库中使用XMLType?这是ODP.NET托管驱动程序尚未支持的事情之一。在撰写本文时,没有托管驱动程序支持或支持非常有限的功能区域包括用户定义类型,XMLDB功能和数据类型,Oracle高级队列,客户端结果缓存,批量复制以及Oracle Database 12c的Transaction Guard功能
http://docs.oracle.com/html/E41125_02/intro004.htm
随着时间的推移,将支持更多数据类型和功能,因此请始终下载新版本,然后检查新文档的该部分以及“新增内容”部分以找出已添加的内容。