从10G开始,Oracle提供了一个较为轻量级的客户包,叫做Instant Client. 将它安装好后,就不用再安装庞大的Oracle Client了. 
这样一来,只要客户端下载Instant Client,直接解压,设置Path就ok了。
具体设置如下:
1、下载32位Oracle InstantClient
 2、将Oracle InstantClient解压到某目录
 3、打开PL/SQL,在perference里面设置OCI Library和Oracle_home,例子如下:
         OCI Library=D:\instantclient_11_2\oci.dll   (刚刚InstantClient的解压目录的OCI.DLL文件)
         Oracle_home=D:\instantclient_11_2     (刚刚InstantClient的解压目录)
 4、设置环境变量(修改NLS_LANG和TNS_ADMIN环境变量)
  对于NLS_LANG环境变量, 最好设置成和数据库端一致, 首先从数据库端查询字符集信息:
  SQL> select userenv('language') nls_lang from dual;
  NLS_LANG
  ----------------------------------------------------
  AMERICAN_AMERICA.ZHS16GBK
  
 右击"我的电脑" - "属性" - "高级" - "环境变量" - "系统环境变量":
  1>.点击"新建", 变量名设置为"TNS_ADMIN", 变量值设置为"D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN", 点击"确定";   (64位ORACLE的TNSNAME.ORA文件的目录)
  2>.点击"新建", 变量名设置为"NLS_LANG", 变量值设置为"AMERICAN_AMERICA.ZHS16GBK", 点击"确定";   (数据库字段集)
  最后点击"确定"退出.
 
至此,重新登陆PLSQL就可以用了

好。pl/sql 是可以登录了,但是咱asp.net程序还是连不上啊!到connection.open()的时候,就报:“尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。“。这个大概是说我asp.net 程序不应该是用32的客户端去访问64位的数据库,我是这样理解的。但是我装了64的oracle 不就相当宇装了64位的客户端吗?装的那个轻量级的32位客户端只是方便pl/sql来访问oralce数据库的。这个问题网上给出了很多回答。大多是,改项目的属性里的生成选项里的目标平台:改为x86.意识是把项目当成32位运行。每个项目都照着改了,还是不管用。网上还有说,把网站项目属性里的web项里的服务器改成iis不使用vs自带的web deleloper ment 服务,应为它的进程为webDe.webServer.exe 是一个32位的进程,反正说了很多。这个方法还是可以。你改完后,项目确实可以运行,并访问oracle64位数据库了。但是我个人总觉得这种方法很麻烦。而且这样你的本地iis里在你每建一个访问oracle数据的项目时,iis里就会多一个项目,而且这样也不稳定时常会报一些奇怪的错误。最后本来打算装回32位系统的,后边在网上逛逛,自己静下心来想想...
最后我发现是不是那个轻量级的包不行啊!最后还是把那个32位的oracle client安装包执行安装了下,安装时选的管理员。而且以前遇到过asp.net连不上oracle,是oracle安装文件夹的权限问题,所以我又对oracle所在的文件夹加netservices用户完全控制的权限。再重启, OK!搞定,程序居然能够连上了。。。。其实我自己也不知道是哪里的问题,到底是那个轻量级的包不行呢!还是那个权限问题...总之这样就好了。就此记录一下

2013-07-07 Note:今天还是同样的问题,经过再次的实验,证明是那个 轻量级的客户端包不行,一定要是那个安装版的,安装版的安装后的目录里面比那个轻量包解压后的目录里面要多出很多文件,由此可见,那个轻量包里面的oci.dll文件解决 pl/sql 连64位oracle的问题可以,但是咱C#程序要连64位oracle,还是得装那个安装版的客户端,可以不用装Administrator选项,默认客户端选项也就一百多兆。
客户端下载点这里

尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。的更多相关文章

  1. vs连接Oracle 客户端库时引发 BadImageFormatException

    报错:Oracle 客户端库时引发 BadImageFormatException如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式? 解决方案:http://www.cnblog ...

  2. 尝试加载 Oracle 客户端库时引发 BadImageFormatException

    尝试加载 Oracle 客户端库时引发 BadImageFormatException 工程师给计算机诊断,就像医生给病人诊断一样,很多同样的症状,可能是由多种截然不同的原因导致的.   最近进行C# ...

  3. 尝试加载 Oracle 客户端库时引发 BadImageFormatException。问题记录

    电脑是win8 64位,安装oracle 11g r2 64位的,谁知道一切装完毕后,打开项目却连不上oracle数据了...首先是pl/sql连不上,装了oracle服务器,应该是不用再装客户端,p ...

  4. “尝试加载 Oracle 客户端库时引发 BadImageFormatException”的解决方案

    今天要写个程序,环境是win8.1+ vs2012+ oracle,可是却出现了一个意想不到的问题: 异常!以下为数据库提示详细错误信息:尝试加载 Oracle 客户端库时引发 BadImageFor ...

  5. webservice 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下运行,将出现此问题

    最近做的项目中,应用服务器迁移到另外一台服务器,操作系统升级为win10,配置好IIS里的应用程序发布网站和Webservice网站后, 客户端程序调用Webservice出错: “尝试加载 Orac ...

  6. “尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。”

    远程连接服务器的数据库调试WCF程序时,可以正常访问数据库,但将程序发布成站点部署在数据库所在的服务器之后,一直报错,通过try/catch捕获得到以下报错信息: System.Exception: ...

  7. 报错:尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。

    问题: 在写windows服务时,发布后日志报错:尝试加载 Oracle 客户端库时引发 BadImageFormatException.如果在安装 32 位 Oracle 客户端组件的情况下以 64 ...

  8. 运行时报:尝试加载 Oracle 客户端库时引发 BadImageFormatException,如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题

    运行环境为: Windows Server2012 Oracle11g  32位数据库+客户端 IIS发布后提示错误信息: “尝试加载 Oracle 客户端库时引发 BadImageFormatExc ...

  9. 关于VS连接Oracle数据库提示:“尝试加载oracle客户端时引发badimage,如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题”的解决方案。

    错误一.关于VS连接Oracle数据库提示:“尝试加载oracle客户端时引发badimage,如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题”的解决方案. ...

随机推荐

  1. JavaScript 继承的几种模式

    /** * Created by 2016 on 2016/6/5. */ //1.原型链继承 //把子类的原型,定义为超类的实例 通过原型来访问超类的方法和属性 function Person(){ ...

  2. Sql语句批量更新数据(多表关联)

    最近在项目中遇到一个问题,原来设计的功能是不需要一个特定的字段值depid的,但是新的功能需要根据depid来展现,于是出现了这样一个问题,新增加的数据都有正确的depid,而原来的大量的数据就没有d ...

  3. VC++对话框中添加状态栏的方法

    方法一:1.添加成员变量CStatusBarCtrl m_StatusBar;2.在OnInitDialog()中加入:                  m_StatusBar.Create(WS_ ...

  4. platform平台设备驱动简化示例代码

    driver.c: #include <linux/kernel.h> #include <linux/module.h> #include <linux/init.h& ...

  5. poj 2135 Farm Tour 最小费用最大流建图跑最短路

    题目链接 题意:无向图有N(N <= 1000)个节点,M(M <= 10000)条边:从节点1走到节点N再从N走回来,图中不能走同一条边,且图中可能出现重边,问最短距离之和为多少? 思路 ...

  6. c++ union学习

    看到公司前辈的代码中用到了union,不管是大学还是工作用到union机会比较少,还是挺新奇的.所以特意找些资料学习学习 前辈的代码: #include<iostream> using n ...

  7. zoom 用法

    from: http://www.jb51.net/css/40285.html 其实Zoom属性是IE浏览器的专有属性,Firefox等浏览器不支持.它可以设置或检索对象的缩放比例.除此之外,它还有 ...

  8. 软件测试 -- 测试人员和QA的区别

    软件测试人员的职责是尽可能早的找出软件缺陷,确保得以修复. 而质量保证人员(QA)主要职责是创建或者制定标准和方法,提高促进软件开发能力和减少软件缺陷. 测试人员的主要工作是测试,质量保证人员日常工作 ...

  9. [转]关于MYSQL Innodb 锁行还是锁表

    关于mysql的锁行还是锁表,这个问题,今天算是有了一点头绪,mysql 中 innodb是锁行的,但是项目中居然出现了死锁,锁表的情况.为什么呢?先看一下这篇文章. 目时由于业务逻辑的需要,必须对数 ...

  10. OpenVPN下载、安装、配置及使用详解

    OpenVPN下载.安装.配置及使用详解   OpenVPN简介 OpenVPN是一个用于创建虚拟专用网络(Virtual Private Network)加密通道的免费开源软件.使用OpenVPN可 ...