OracleClient是一种.NET Framework 数据提供程序OracleClient .NET Framework 数据提供程序使用它自身的协议与Oracle通讯 Ole DB 通过OLE DB 服务组件 和 OLE DB 提供程序与 Database进行通信,也就是需要安装MDAC. 因此OracleClient比oledb具有更好的性能OracleClient是微软提供的,不是Oracle自带的,Oracle自带的叫ODP.net(Oracle Data Provider for .net)
Ole DB 通过OLE DB 服务组件 和 OLE DB 提供程序与 Database进行通信,也就是需要安装MDAC.
因此OracleClient比oledb具有更好的性能OracleClient是微软提供的,不是Oracle自带的,Oracle自带的叫ODP.net(Oracle Data Provider for .net)
首先,访问oracle数据库都要通过sql*net,这是oracle网络通讯的基础。因此,oledb是为ado数据访问接口标准提供的,而oracle.net(microsoft也为oracle开发提供了oracle.net,.net framework 1.0也可以用)/oracleclient是为了.net开发提供的。但是最终都必须通过sql*net的底层API。
那么,如果有性能差异的话,也应该是oledb provider和oracle.net代码的问题。
因此,也自然容易理解为什么一个出线的乱码的问题。oracleclient采用的内部编码可能不能直接显示中文,像iso8859之类的,你需要自己做内部编码到中文的自动转换(用.net的),而oledb可能本身用的内部编码就能够支持中文的正确显示。
.net中通过system.text.encoding类库函数来进行转换。
http://expert.csdn.net/Expert/topic/3044/3044274.xml?temp=.3908808