python连接oracle
一:弄清版本,最重要!!!
首先安装配置时,必须把握一个点,就是版本一致!包括:系统版本,python版本,oracle客户端的版本,cx_Oracle的版本,然后安装配置就容易了!
二:安装
1.cx_Oracle安装
下载地址:https://pypi.python.org/pypi/cx_Oracle/5.3
下载后直接双击安装,就ok了。 不建议直接使用pip install cx_Oracle命令安装,因为版本问题容易报错。
2.oracle 客户端
1.下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
把下载的文件解压,复制oci,oraocci11,oraociei11的3个DLL粘贴到你的PY目录的Lib\site-packages文件夹下面。
2.配置tnsnames.tns文件
在E:\oracle解压地址\instantclient下建立文件tnsnames.ora,
将下面内容粘贴进该文件:
OPQM_UAT=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = opqmsit.dbsit.sfdc.com.cn)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = opqmsit)
)
)
3.设置环境变量(系统变量)
NLS_lANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK(注意中间有空格,这个如果不设,toad查询中文会是乱码)
TNS_ADMIN= E:\oracle解压地址\instantclient
Path=...;E:\oracle解压地址\instantclient
三:例子
'''
错误一:python cx_Oracle.DatabaseError: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor错误
错误连接方式:
db=oracle.connect('opqm/sfpwd12345#@opqmsit.dbsit.sfdc.com.cn:1521/orcl')#数据库连接
该种连接方式会报上面的错误改为下面的连接方式
正确连接方式:
conn = cx_Oracle.connect('opqm', 'sfpwd12345#',cx_Oracle.makedsn('opqmsit.dbsit.sfdc.com.cn',1521,'opqmsit'));
'''
import cx_Oracle
conn = cx_Oracle.connect('opqm', 'sfpwd12345#',cx_Oracle.makedsn('opqmsit.dbsit.sfdc.com.cn',1521,'opqmsit'));
curs=conn.cursor()
sql='select seq_sfcrm_job.nextval nexval from dual' #sql语句
rr=curs.execute (sql)
row=curs.fetchone()
print(row[0])
curs.close()
conn.close()