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:\Windows\SysWOW64\odbcad32.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"

 

 

你可能感兴趣的:(Asp连接Oracle (包含绿色版12.2客户端和ODBC驱动安装))