真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python連接oracle配置

環(huán)境:

創(chuàng)新互聯(lián)公司擁有十載成都網(wǎng)站建設(shè)工作經(jīng)驗(yàn),為各大企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作服務(wù),對(duì)于網(wǎng)頁(yè)設(shè)計(jì)、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、成都App定制開發(fā)、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、程序開發(fā)、網(wǎng)站優(yōu)化(SEO優(yōu)化)、微網(wǎng)站、域名注冊(cè)等,憑借多年來(lái)在互聯(lián)網(wǎng)的打拼,我們?cè)诨ヂ?lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了很多網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷經(jīng)驗(yàn),集策劃、開發(fā)、設(shè)計(jì)、營(yíng)銷、管理等網(wǎng)站化運(yùn)作于一體,具備承接各種規(guī)模類型的網(wǎng)站建設(shè)項(xiàng)目的能力。

操作系統(tǒng):win7 64位,CPU是inter的pc機(jī)

Oracle服務(wù)端:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

Oracle本地客戶端:Release 11.2.0.1.0  32bit Production

Python版本:python2.7.5(安裝路徑:C:\Python27\)

 

cx_Oracle版本:cx_Oracle-5.2.1-11g.win-amd64-py2.7.exe

Iinstantclient版本:instantclient-basic-win-x86-64-11.2.0.1.0.zip

 

 

 

在學(xué)習(xí)python過(guò)程中,需要連接oracle數(shù)據(jù)庫(kù),所以要安裝cx_Oracle。

 

安裝cx_Oracle-5.2.1-11g.win-amd64-py2.7.exe,import cx_Oracle報(bào)錯(cuò)。提示:import cx_Oracle

ImportError: DLL load failed: %1 不是有效的Win32應(yīng)用程序。根據(jù)報(bào)錯(cuò)提示應(yīng)該是缺少dll文件,因?yàn)槲冶緳C(jī)oracle客戶端是32位的,64位的cx_Oracle程序調(diào)用32位的動(dòng)態(tài)庫(kù)肯定會(huì)報(bào)錯(cuò)。

 

根據(jù)文章http://blog.csdn.net/huzhenwei/article/details/3946308指點(diǎn),去oracle網(wǎng)站下載了instance client,地址是:

http://www.oracle.com/technology/software/tech/oci/instantclient/index.html。

我下載了instantclient-basic-win-x86-64-11.2.0.1.0.zip這個(gè)版本。

直接解壓C:\instantclient_11_2 目錄下。

 

在“環(huán)境變量”的“系統(tǒng)變量”中增加:

ORACLE_HOME = C:\instantclient_11_2 (網(wǎng)上說(shuō)需要,但是測(cè)試不加也可以)

TNS_ADMIN = C:\instantclient_11_2  (網(wǎng)上說(shuō)需要,但是測(cè)試不加也可以)
NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK
修改Path變量,在后面添加C:\instantclient_11_2

 

 

然后把解壓包中的oci.dll文件放到%python_home%\Lib\site-packages 下,再次import不會(huì)報(bào)錯(cuò)了。

 

 

執(zhí)行測(cè)試python腳本報(bào)錯(cuò),提示cx_Oracle Interface Error: Unable to acquire Oracle enviroment handle。啟動(dòng)PLSQL登陸打開的是剛才的tns,但登陸就報(bào)錯(cuò)ORA-1以為是instance client和之前安裝的32位oracle client沖突,ORA-12557。感覺(jué)是這個(gè)64位的instance client與之前裝的32位oracle client沖突了。于是把環(huán)境變量里的ORACLE_PATH刪掉,就可以登陸PLSQL了。但測(cè)試語(yǔ)句還是報(bào)那個(gè)錯(cuò)。折騰了半天,最后死馬當(dāng)活馬醫(yī)吧,嘗試著把C:\instantclient_11_2里面的dll文件都拷貝到了python的C:\Python27\Lib\site-packages目錄下,又RUN了一下,居然不報(bào)錯(cuò)了。 然后逐個(gè)刪掉,最后發(fā)現(xiàn)oraociei11.dll刪掉會(huì)報(bào)錯(cuò),而其它dll刪掉重新Run都不會(huì)報(bào)錯(cuò)。

不過(guò)使用PLSQL登陸還是會(huì)報(bào)錯(cuò),只好把環(huán)境變量ORACLE_HOME刪掉了,并不影響cx_Oracle的使用。原理不太清楚,先記錄下來(lái)。

 

Python測(cè)試腳本:

#!/usr/bin/python
#coding=utf-8
import cx_Oracle

username = "smb"
passwd = "czty_smb"
host = "192.168.150.233"
port = "1521"
sid = "zsms"
dsn = cx_Oracle.makedsn(host, port, sid)
con = cx_Oracle.connect(username, passwd, dsn)
cursor= con.cursor()
sql = 'SELECT smbms, prtms  FROM t_user_mobile_dz'
cursor.execute(sql)
result = cursor.fetchall()
print "Total: " + str(cursor.rowcount)
for row in result:
	print row
cursor.close()
con.close()

 


網(wǎng)頁(yè)名稱:python連接oracle配置
URL標(biāo)題:http://weahome.cn/article/gjsosd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部