• Asp连接Oracle (包含绿色版12.2客户端和ODBC驱动安装)


    我能操作的终端电脑是一台linux系统可以上互联网 ,服务器在部署在独立的私网上,不方便上互联网。服务器是2008R2.安装vs不是很方便。其所linux下作开发不是不可以,java php mono.net python 都能做。但是我还得在服务器上部署一套运行环境。因为操作系统不同,还不知道有没有什么坑。就想到了不需要部署的ASP。2008R2的IIS自带此功能。

    但所没想到还是有坑的。。先说说服务器的环境,2008R2 安装了64位 oracle11G。安装了9i精简客户端。

    一)连接字符串问题

    原来在网上搜的ado的连接字符串,格式如下。但所一直报错,提示无法识别服务名。

     

    connstr="Provider=OraOLEDB.Oracle;Data Source=orcl;User Id=trffpn_app;Password=*****; "

    然后就尝试另外的连接字符串通过ODBC连接,格式如下:

     

     

    connstr="DSN=trffpn;UID=trffpn_app;PWD=******"

    二)64位系统下32位ODBC管理工具。

    需要在odbc下面建立连接。在管理工具里面用ODBC管理建立了连接池,发现害死报错,提示找不到数据源。后来发现64的系统ODBC是区分32位和64位的。32位ODBC管理工具路径如下:

     

     

    C:WindowsSysWOW64odbcad32.exe

    三)9i精简客户端odbc驱动问题

    找到odbc32就好办了,建立连接就可以了,发现还是报错,提示用户名密码不对。怎么尝试怎么不对。想来64位的ODBC没问题,估计就是32位的ODBC驱动的问题了。

     

    卸载驱动,重新安装12.2绿色版驱动。

    绿色版客户端是不包含ODBC驱动的,下载独立ODBC驱动包,把两个放在一个目录下面。

    然后执行一下ODBC驱动安装文件odbc_install.exe,建议在命令行里执行方便查看输出结果。

    最后配置环境变量即可,主要方便32位的PLSQL连接。其中tns_admin和ORACLE_HOME不设置也行。在oci.dll文件目录下新建NETWORK/ADMIN目录,把tnsnames.ora放在这里即可。把绿色版客户端目录直接复制在plsql选项卡里也就可以不需要配在ORACLE_HOME了。

     

    NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    TNS_ADMIN = D:/PLSQL/instantclinet_11_2
    ORACLE_HOME= D:/PLSQL/instantclinet_11_2

    好了,这这时候终于在32位的驱动里建立了oracle连接

    四)12.2驱动 plsql 登陆时需要VC++2003运行环境

    折腾好了,要登陆plsql 我的版本是7.发现报错。msvc120.dll的错误。百度搜了下缺少VC2003运行环境,安装后解决。另外PLSQL11已经支持64位客户端了。

    五)获取后的数据中文乱码

    在aspstudio里没有问题,但所在iis里就是乱码查看十六进制后中文都是3F。这个捣鼓了我好久,修改NLS_LANG,在ASP里现实声明CODE。都没有用。后来想起来配在了oracle驱动后还没有重起服务器,重起解决

    response.CodePage=65001
    Response.Charset="UTF-8"

     

     

  • 相关阅读:
    你所不知道的 CSS 阴影技巧与细节
    %date~0,4%和 %time~0,2%等用法详解
    计算程序执行时间
    GDI
    IO
    字符串拼凑批量Insert SQL语句神BUG
    用逗号分隔的数据转换到数组
    MVC ViewBag传值
    接口和抽象类对比
    Partial 同一个命名空间下写两个类名一样的类
  • 原文地址:https://www.cnblogs.com/edzjx/p/10373781.html
Copyright © 2020-2023  润新知