zoukankan      html  css  js  c++  java
  • 64位windows上访问64位oracle 12c

    64位windows上访问64位oracle 12c,这会有啥问题?

    没啥问题。问题是,我64位操作系统的机器上装了个oracle 10g。而oracle 10g好像是不区分啥32位、64位的,一律32位。

    此前,我在ASP.NET项目中,连接无论是oracle 10g,还是oracle 12c,都没有问题,只须在对应的IIS的应用程序池上开启32位支持即可。为啥要开启32位支持呢?原因是本机的oracle是10g的,32位,它充当了客户端的角色,凡访问oracle,不管外部内部,都要这个客户端支持。

    由于IIS的强大,asp.net程序被支持得很好,连接oracle的途径畅通无阻。直到近期我开发一个WIN FORM桌面程序。这个可没有IIS的支持。于是就报错了:

    数据连接不成功,请检查该数据库是否已启动尝试加载oracle客户端时引发BadImageFormatException.如果在安装32位Oracle客户端组件的情况下以64位模式运行,将出现此问题。

    怎么办呢?难道我要装一个64位的oracle客户端?真麻烦。

    依照以前的经验(.NET访问ORACLE心得:疯狂重启IIS,如有神助),我决定不装这个客户端,仅到oracle站点下载一个包,然后修改一下系统环境的PATH。

    1、首先到oracle官方站点下载64位的 instantclient-basic-windows.x64-12.1.0.2.0.zip。
    里面有几个dll。看上去,.NET是依赖于其中的oci.dll来访问oracle。

    2、然后将这个包的路径加到系统环境变量PATH里
    主要是让系统能找到里面的oci.dll。据说系统会自动忽略32位的oci.dll,转而用这个64位的。

    3、PATH设置好以后,程序依然报错。靠。查看PATH,生效了,但不知为什么,程序还是报错。一怒之下,重启,问题解决。真贱,不重启都不行。

    估计是系统初始化时,会加载这个PATH的?然后加载完就完了,才不管你这个PATH是否已经修改。

  • 相关阅读:
    keyCode对照表
    WebApi的前端调用
    AJAX get和post请求
    Linq中常用语法
    MVC三种分页方法
    常用DBhelper封装方法
    ASP.NET MVC 导入Excel文件(完整版)
    Razor语法2
    MVC之路由规则 (自定义,约束,debug)
    MVC
  • 原文地址:https://www.cnblogs.com/leftfist/p/6808705.html
Copyright © 2011-2022 走看看