python连接oracle数据库(如何在Python下连接Oracle数据库)
大家好,今天来为大家解答python连接oracle数据库这个问题的一些问题点,包括如何在Python下连接Oracle数据库也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
如何用python更新oracle数据库
用python更新oracle数据库:
1.要想使Python可以操作Oracle数据库,首先需要安装cx_Oracle包,可以通过下面的地址来获取安装包:cx-oracle.sourceforge.net/
2.另外还需要oracle的一些类库,此时需要在运行python的机器上安装Oracle Instant Client软件包,可以通过下面地址获得technetwork/database/features/instant-client/index-097480.html
找到符合自己平台的包,然后安装,这里我使用的是rpm包,所以使用以下命令安装
$ sudo rpm-ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.i386.rpm
装完毕后还需要设置一下环境变量,如下
$ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib/oracle/11.2/client/lib
然后写update语句对表进行更新:
import cx_Oracle//导入链接oracle的库
conn= cx_Oracle.connect('fkong/fkong@172.17.23.129/orcl')//建立与orcl的连接
cursor= conn.cursor()//打开游标
cursor.execute("update test set COL1='u' where ID=1")//执行更新
conn.commit()//提交结果
cursor.close();//关闭游标
conn.close();//关闭连接
如何在Python环境下连接Oracle数据库
首先下载驱动
(cx_Oracle)要注意一下版本根据你的情况加以选择
安装
执行exe安装程序就可以了它会copy一个cx_Oracle pyd到{PYTHON_HOME}\Lib\site packages目录下
执行一段测试程序 import cx_Oraclecon= nnect( xjtu_test xjtu world)cursor= con cursor()cursor close()con close()
里边connect中的个参数从左到右分别是 user pass TNS
那个TNS可以用Oracle客户端工具中的Net Configuration Assistant来配置
参考cx_Oracle API
好了执行那段测试代码时你肯定遇到问题了一般会有以下问题
【】import cx_Oracle时报告找不到OCI DLL
到装了Oracle的机器上找一个然后copy到{PYTHON_HOME}\Lib\site packages目录下就可以了
【】nnect时报告RuntimeError Unable to acquire Oracle environment handle
这个问题相对比较麻烦按以下步骤来解决(可能不需要所有的步骤我没有确认不过把以下步骤都执行了确实问题就解决了)
首先确认你是在控制台下边来执行这个python脚本的而不是某些ide例如 PyDev(它们似乎无法载入os的环境变量)
其实在本机安装Oracle(只安客户端工具就可以了)
lishixinzhi/Article/program/Oracle/201311/17797python3连接oracle报错
python3连接oracle报错
#-*- coding:utf-8-*-
#!/usr/bin/env python
'''
Created on 2014年8月4日
@author: 188007
连接Oracle数据库的class
'''
import os
os.environ['NLS_LANG']='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
import cx_Oracle
import sys
class Oracle:
'''
python access oracle helper tool class
'''
def __init__(self, ip,port,db,user,pwd):
self.ip= ip
self.port= port
self.db= db
self.user= user
self.pwd= pwd
def __GetConnect(self):
"""得到连接信息返回: conn.cursor()"""
if not self.db:
raise(NameError,"没有设置数据库信息")
dsn=cx_Oracle.makedsn(self.ip,self.port,self.db)
self.conn=cx_Oracle.connect(self.user,self.pwd,dsn)
cur= self.conn.cursor()
if not cur:
raise(NameError,"连接数据库失败")
else:
return cur
def ExecQuery(self,sql):
"""执行查询语句返回的是一个包含tuple的list,list的元素是记录行,tuple的元素是每行记录的字段
调用示例:
oracle= Oracle('10.27.95.253','1561','GFDMS','GFITAPPS','GFITAPPS')
resList= oracle.ExecQuery("SELECT OBJID,NUMCODE,AREACODE,AREANAME,PROVCODE,PROVNAME,CITYCODE,CITYNAME,TOWNCODE,TOWNNAME,REMARK FROM GFDMS.THZONE ORDER BY NUMCODE")
for(AREANAME) in resList:
print str(AREANAME).decode('gb2312')
"""
try:
cur= self.__GetConnect()
cur.execute(sql)
resList= cur.fetchall()
#查询完毕后必须关闭连接
self.conn.close()
except Exception, err:
sys.exit(1)
return resList
def ExecNonQuery(self,sql):
"""执行非查询语句
调用示例:
oracle.ExecNonQuery("insert into THZONE values('x','y')")
"""
try:
cur= self.__GetConnect()
cur.execute(sql)
self.conn.commit()
self.conn.close()
except Exception, err:
sys.exit(1)
# def main():
## oracle= Oracle('10.27.95.253','1561','GFDMS','GFITAPPS','GFITAPPS')
###返回的是一个包含tuple的list,list的元素是记录行,tuple的元素是每行记录的字段
## oracle.ExecNonQuery("insert into THZONE values('x','y')")
# oracle= Oracle('10.27.95.253','1561','GTEST','GTAPPS','GTAPPS')
# resList= oracle.ExecQuery("SELECT OBJID,NUMCODE,AREACODE,AREANAME,PROVCODE,PROVNAME,CITYCODE,CITYNAME,TOWNCODE,TOWNNAME,REMARK FROM GTEST.THZONE ORDER BY NUMCODE")
# for(AREANAME) in resList:
# print str(AREANAME).decode('utf-8')
#
# if __name__=='__main__':
# main()
如何在Python下连接Oracle数据库
本文实例讲述了python连接oracle数据库的方法,分享给大家供大家参考。具体步骤如下:
一、首先下载驱动:(cx_Oracle)
http://www.python.net/crew/atuining/cx_Oracle/
不过要注意一下版本,根据你的情况加以选择。
二、安装:
首先配置oracle_home环境变量
执行那个exe安装程序就可以了,它会copy一个cx_Oracle.pyd到Libsite-packages目录下。
如果是linux,执行
python setup.py build
python setup.py install
三、执行一段测试程序:
import cx_Oracle
con= cx_Oracle.connect("xjtu_test","37343734","xjtu.world")
cursor= con.cursor()
cursor.close()
con.close()
里边connect中的3个参数从左到右分别是:user, pass, TNS。
那个TNS可以用Oracle客户端工具中的Net Configuration Assistant来配置。
四、具体的cx_Oracle API可以参考:
http://www.python.net/crew/atuining/cx_Oracle/html/cx_Oracle.html
五、示例:
>>> import cx_Oracle
>>> conn=cx_Oracle.connect('scott/tiger@oratest')
>>> curs=conn.cursor()
>>> sql='select* from emp'
>>> rr=curs.execute(sql)
>>> row=curs.fetchone()
>>> row
(7369,'SMITH','CLERK', 7902, datetime.datetime(1980, 12, 17, 0, 0), 800.0, None, 20)
>>> while row:
(ID,NAME)=(row[0],row[1])
row=curs.fetchone()
print ID,NAME
7369 SMITH
7499 ALLEN
7521 WARD
7566 JONES
7654 MARTIN
7698 BLAKE
7782 CLARK
7788 SCOTT
7839 KING
7844 TURNER
7876 ADAMS
7900 JAMES
7902日常
7934 MILLER
如果使用windows平台,执行那段测试代码时你肯定遇到问题了,一般会有以下问题:
① import cx_Oracle时报告找不到OCI.DLL:
到装了Oracle的机器上找一个,然后copy到Libsite-packages目录下就可以了。
② cx_Oracle.connect时报告RuntimeError: Unable to acquire Oracle environment handle:
这个比较麻烦,按以下步骤来解决:(可能不需要所有的步骤,我没有确认,不过把以下步骤都执行了,确实问题就解决了)
首先,确认你是在控制台下边来执行这个python脚本的。而不是某些ide,例如:PyDev(它们似乎无法载入os的环境变量)。
其实,在本机安装Oracle(只安客户端工具就可以了)。
最后,添加以下环境变量:(我给出我的,换成你自己的路径就可以了)
ORACLE_HOME=D:OracleOra81
PATH=D:OracleOra81bin;
希望本文所述对大家的Python程序设计有所帮助。
好了,文章到这里就结束啦,如果本次分享的python连接oracle数据库和如何在Python下连接Oracle数据库问题对您有所帮助,还望关注下本站哦!