您的位置:首页 > 数据库 > Oracle

python3连接oracle的测试

2017-09-05 18:01 375 查看
1.python连接oracle首先需要cx_Oracle这个库,下载地址是:https://pypi.python.org/pypi/cx_Oracle/5.3,这是python的第三方库仓库。选择相应的oracle版本和python进行下载。

我下载的是11G的oracle数据库版本,以及3.5的python版本这个。



接下来安装cx_Oracle,安装很简单,在安装过程中如果版本是正确的话,能够识别出python。

2.因为安装cx_Oracle是针对64位的win系统,所以相应的oracle客户端也需要64位的。如果不用64位的oracle客户端,

会报错“”cx_Oracle ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。“”

下载64位的oracle客户端。下载地址:http://download.csdn.net/download/wu858773457/9873799

下载完之后,将oci.dll,oraocci11.dll,oraociei11.dll这3个文件放到python安装目录下,Lib-》site-packages中。

新下载的oracle客户端下,network-->admin中建立tnsnames.ora文件,或者从之前的客户端中拷贝过来。

配置oracle客户端的环境变量

3.接下来运行测试程序

import cx_Oracle
username="***"
userpwd="***"
host="192.168.168.2"
port=1521
dbname="***"
dsn=cx_Oracle.makedsn(host, port, dbname)
connection=cx_Oracle.connect(username, userpwd, dsn)
cursor = connection.cursor()
sql = "select * from tab"
cursor.execute(sql)
result = cursor.fetchall()
count = cursor.rowcount
print ("=====================" )
print ("Total:", count)
print ("=====================")
for row in result:
print (row)
cursor.close()
connection.close()


我遇到的问题:ora-12514 无监听程序

我连的是本机虚拟机的oracle服务器,pl/sql也无法连接,也是提示无监听。我用本机telnet1521端口也连不上。

在网上找到了解决办法,是oracle服务端listener.ora文件配置的问题。将红框中的localhost.localdomain改为机器IP,问题就解决了。

参考文章:http://blog.csdn.net/luomaozhong/article/details/53174338

下面是程序的运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python