python3连接oracle的测试

来源:互联网 发布:js window对象用不了 编辑:程序博客网 时间:2024/06/05 15:54

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_Oracleusername="***"userpwd="***"host="192.168.168.2"port=1521dbname="***"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


下面是程序的运行结果: