不安装Oracle客户端访问服务器数据库

来源:互联网 发布:sql外键怎么设置 编辑:程序博客网 时间:2024/05/18 04:51

环境 :vs2010  C#  Oracle11g

问题重现:c#新开发的一个模块中需要访问服务器数据库中的数据,在软件部署时会提示需要安装ORACLE客户端。如果是自己用的话安上也无所谓,不过让客户安装似乎有点麻烦,当然最好的就是绿色版无需安装。查看免ORACLE客户端安装的不少文章,方案真多,可真正用到自己机器上时总出现这样那样的问题。想了想可能是帖子年份不同和里面版本不同导致。找到适合自己的解决方案才是最棒的。不知道看了多少篇文章,出于稳定性考虑,选择Oracle提供的精简客户端(http://download.csdn.net/detail/eisjmo/4362471),步骤如下:

1.安装客户端到指定目录,例如:D:\ORACLE,按照案例修改tnsnames.ora

修改完后可以用pl/sql测试下,如果不行再检查tnsnames中拼写是否有误,我第一次就弄错了,也检查不错来,直接复制的别例子上的然后再仔细改后测试连接通过

2.将安装目录拷贝到bin\debug下,或者在debug下随便创建个文件夹将内容放进去

其实这一步的作用是为下一步设置环境变量做准备,就是为了系统能监测到oci.dll,放到debug下面只是为了将来可以直接随模块部署。有文章说只需要里面的几个dll就可以,不过测试未通过

3.环境变量用代码修改

我参考的一杺①意的博客,这种方法旨在不更改目标机器环境,所以PL/SQL不能自动识别客户端,需要在PL/SLQ中设置oracle的路径,这里就不细说

string oraclePath = System.Windows.Forms.Application.StartupPath + @"\oracle";

Environment.SetEnvironmentVariable("PATH", oraclePath,EnvironmentVariableTarget.Process);//设置环境变量

 Environment.SetEnvironmentVariable("NLS_LANG", "SIMPLIFIED CHINESE_CHINA.ZHS16GBK", EnvironmentVariableTarget.Process);//设置客户端字符集

4.编译工程,将debug直接拷贝到客户机器上运行,成功

总结起来真简单,可这真是折腾了一天的结果,过程中遇到各种问题,还好一步一步克服,看了N个博客之后才慢慢有了头绪,回头再看博客已是另外一种感触,不是大家写的不清楚不详细,只是真的需要不同环境不同分析


0 0
原创粉丝点击