前提:
1. 不安装oracle的客户端
2. 不需要配置ora文件
3. C# 实现
既然是C#实现,当然就要去找oracle的连接库了,主要有三种方式:
1. 微软提供的System.Data.OracleClient已经过时了,不推荐使用了
2. Oracle 的Oracle.DataAccess
3. Oracle 的Oracle.ManagedDataAccess
如果运行环境是.net 3.5的话,就只能选择Oracle.DataAccess了
开发:
先去下载ODAC, oracle官方下载需要账号,不想下载的话就点这里 x64 x86
上面那个是ManagedDataAccess,体积比较小,推荐使用
下面那个是DataAcess,体积比较大,需要安装一下ODP.NET,但是不是安装Oracle client 那个巨无霸。
Oracle.Managed.DataAccess 只需要引用Oracle.Managed.DataAccess.dll 这个库即可,不需要其他什么模块了。
Oracle.DataAccess则需要安装下Xcopy的ODP.net4/20。命令行下运行install.bat odp.net2/4 C:\oracle myhome true即可。这样ODP.NET就安装好了。引入Oracle.DataAccess库就OK了。
这里运行时可能会碰到异常,只要将C:\oracle 目录下的oraons.dll拷贝至C:\oracle\bin目录下即可。
如果想做成绿色版,免安装ODP.NET,则收集以下DLL并拷贝至exe目录即可:
OCI.DLL, Oracle.DataAccess.dll, oraociei12.dll, oraons.dll, oraops12.dll,
还另外加一个vc库msvcr***.dll,这就看你的vs版本了。
另外附上ConnectString的写法:
constr = string.Format("Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={2})(PORT={3})))(CONNECT_DATA=(SERVICE_NAME={4})));User Id={0};Password={1}", _userID, _passWord, _dataSource, _port, _serviceName);