python3连接oracle的测试

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

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

python3连接oracle的测试_第1张图片

接下来安装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


下面是程序的运行结果:

python3连接oracle的测试_第2张图片






你可能感兴趣的:(python)