Asp连接Oracle (包含绿色版12.2客户端和ODBC驱动安装)
我能操作的終端電腦是一臺linux系統(tǒng)可以上互聯(lián)網(wǎng) ,服務(wù)器在部署在獨立的私網(wǎng)上,不方便上互聯(lián)網(wǎng)。服務(wù)器是2008R2.安裝vs不是很方便。其所linux下作開發(fā)不是不可以,java php mono.net python 都能做。但是我還得在服務(wù)器上部署一套運行環(huán)境。因為操作系統(tǒng)不同,還不知道有沒有什么坑。就想到了不需要部署的ASP。2008R2的IIS自帶此功能。
但所沒想到還是有坑的。。先說說服務(wù)器的環(huán)境,2008R2 安裝了64位 oracle11G。安裝了9i精簡客戶端。
一)連接字符串問題
原來在網(wǎng)上搜的ado的連接字符串,格式如下。但所一直報錯,提示無法識別服務(wù)名。
?
connstr="Provider=OraOLEDB.Oracle;Data Source=orcl;User Id=trffpn_app;Password=*****; "然后就嘗試另外的連接字符串通過ODBC連接,格式如下:
?
?
connstr="DSN=trffpn;UID=trffpn_app;PWD=******"二)64位系統(tǒng)下32位ODBC管理工具。
需要在odbc下面建立連接。在管理工具里面用ODBC管理建立了連接池,發(fā)現(xiàn)害死報錯,提示找不到數(shù)據(jù)源。后來發(fā)現(xiàn)64的系統(tǒng)ODBC是區(qū)分32位和64位的。32位ODBC管理工具路徑如下:
?
?
C:\Windows\SysWOW64\odbcad32.exe三)9i精簡客戶端odbc驅(qū)動問題
找到odbc32就好辦了,建立連接就可以了,發(fā)現(xiàn)還是報錯,提示用戶名密碼不對。怎么嘗試怎么不對。想來64位的ODBC沒問題,估計就是32位的ODBC驅(qū)動的問題了。
?
卸載驅(qū)動,重新安裝12.2綠色版驅(qū)動。
綠色版客戶端是不包含ODBC驅(qū)動的,下載獨立ODBC驅(qū)動包,把兩個放在一個目錄下面。
然后執(zhí)行一下ODBC驅(qū)動安裝文件odbc_install.exe,建議在命令行里執(zhí)行方便查看輸出結(jié)果。
最后配置環(huán)境變量即可,主要方便32位的PLSQL連接。其中tns_admin和ORACLE_HOME不設(shè)置也行。在oci.dll文件目錄下新建NETWORK/ADMIN目錄,把tnsnames.ora放在這里即可。把綠色版客戶端目錄直接復制在plsql選項卡里也就可以不需要配在ORACLE_HOME了。
?
NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK TNS_ADMIN = D:/PLSQL/instantclinet_11_2ORACLE_HOME= D:/PLSQL/instantclinet_11_2
好了,這這時候終于在32位的驅(qū)動里建立了oracle連接
四)12.2驅(qū)動 plsql 登陸時需要VC++2003運行環(huán)境
折騰好了,要登陸plsql 我的版本是7.發(fā)現(xiàn)報錯。msvc120.dll的錯誤。百度搜了下缺少VC2003運行環(huán)境,安裝后解決。另外PLSQL11已經(jīng)支持64位客戶端了。
五)獲取后的數(shù)據(jù)中文亂碼
在aspstudio里沒有問題,但所在iis里就是亂碼查看十六進制后中文都是3F。這個搗鼓了我好久,修改NLS_LANG,在ASP里現(xiàn)實聲明CODE。都沒有用。后來想起來配在了oracle驅(qū)動后還沒有重起服務(wù)器,重起解決
response.CodePage=65001 Response.Charset="UTF-8"?
?
總結(jié)
以上是生活随笔為你收集整理的Asp连接Oracle (包含绿色版12.2客户端和ODBC驱动安装)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【PM学习笔记】酸梅干超人 - 零基础学
- 下一篇: 什么是jdk的java运行工具_下面(