python 2.7 数据连接

来源:互联网 发布:python自动化开发基础 编辑:程序博客网 时间:2024/05/21 03:21

win32:

oracle 10g:

安装包:cx_oracle支持的版本和客户端一定要一致,否则就算安装正常了也会报"Unable to acquire Oracle environment handle"

instantclient_10_2.rar

cx_Oracle-5.1.2-10g.win32-py2.7.msi


安装:

1:解压instantclient_10_2.rar到oracle10g

2:如果你安装了oracle客户端则只用将解压后的目下下的oci.dll,oraocci10.dll,oraociei10.dll三个文件拷贝到 Python27\Lib\site-packages目录下即可

3:如果你没安装oracle客户端则需设置:

a)ORACLE_HOME=解压后的oracle10g 

b)添加tnsnames.ora,第一次安装时需手动创建此文件

样式如下

# tnsnames.ora Network Configuration File: $ORACLE_HOME\network\admin\tnsnames.ora# Generated by Oracle configuration tools.TNS_SID=  (DESCRIPTION =    (ADDRESS_LIST =      (ADDRESS = (PROTOCOL = TCP)(HOST = 1.1.1.1)(PORT = 1521))    )    (CONNECT_DATA =      (SERVICE_NAME = testsid)    )  )


开发:

import cx_Oracle
#建立连接
tns_name=cx_Oracle.makedsn('1.1.1.1',1521,'testsid') #tns连接串自动组合,这个不知道是否可以抛弃tnsnames.ora呢
conn=cx_Oracle.connect(user_name,passwd,tns_name) #建立了连接
#取得游标
cursor=conn.cursor()
#执行sql
cursor.execute(query_sql)
#select操作
#excute sql: select sysdate from dual where 1=1  #ret:(datetime.datetime(2014, 4, 18, 19, 44, 10),)
ret=cursor.fetchall() #fetchone一次取一条,无论一条还是全部,取完之后不可重复取
#非select操作所有执行的操作
conn.commit()  #提交变更
#关闭游标
cursor.close() #执行一次sql就关闭一次
#关闭连接
conn.close()







0 0
原创粉丝点击