python3连接Oracle数据库

今天有了Oracle环境,又捣鼓一遍怎么连接,比上次有点收获,上次比较顺利,照着网上别人的博客基本就连接成功了,今天遇到了一些坑,当然这些坑的帮助也很大。

首先我安装的python是3.7版本,32位。这个在cmd下输入python就能看见。

连接Oracle比MySQL麻烦一些,如何连接MySQL,请点这里

连接Oracle需要安装cx_Oracle和oracle客户端,由于我装的python3.7版本,找cx_Oracle的时候发现别人博客里的链接最高只能下载python3.6的cx_Oracle,我下载一个3.6的果然安装失败,网上也有那种报错的解决方法,但是我觉得毕竟版本不一样,不太想试。这情况让我不禁怀疑人生,不会更新这么慢吧,难道我还要等更新或者重新安装python3.6?后来总算找到了最新的下载地址,感觉还不错。下面直接从别处粘的。

Python一个官方网站PyPI,上面有丰富的模块。cx_Oracle就可以在PyPI中下载。打开PyPI的网址https://pypi.python.org/pypi,在里面搜索cx_Oracle,即可找到该模块,其下载地址为https://pypi.org/project/cx_Oracle/#files。当然也可以通过其它的途径下载。

粘的时候第二个链接不对,我改了一下,不知道以后会不会再变,仔细看一下网页,就能找到在哪下载了。

我是先根据python版本找的要下载哪个,看样子还挺全的,Linux、win32、win64应该是都有,我直接下的win32。但是这个是.whl文件,又百度一下怎么安装.whl文件。

安装这个得先在cmd下输入:pip install wheel(如果报错则输入:pip.exe install wheel)。安装完毕,还是在cmd里,用dos命令找到cx_Oracle下载位置。下面放上dos进入路径的命令用法。

大概就是这样,然后继续输入安装cx-Oracle的命令,注意:这命令是用来装.whl文件的。

命令:pip install cx_Oracle-6.4.1-cp37-cp37m-win32.whl(如果报错,则输入:pip.exe install cx_Oracle-6.4.1-cp37-cp37m-win32.whl),其中“cx_Oracle-6.4.1-cp37-cp37m-win32.whl”是我的文件名。

下面情况就是安装成功了:

现在完成了一半了,然后再下载Oracle客户端,百度找instantclient就行了,这里一定要确定好是下载32位的还是64位的,我之前有一个64位的,直接用总是报错:cx_Oracle.DatabaseError: DPI-1047: 32-bit Oracle Client library cannot be loaded: "D:\instantclient_12_2\oci.dll is not the correct architecture"

这意思是要用32位的客户端(我百度找答案的时候,别人都是提示让下载64位的客户端。。。)

重新找了一个32位的下载了,放到一个位置,然后配置环境变量,Path里加上路径,像我这就加D:\instantclient_12_2就行了。废了半天劲环境应该是好了,下面附上一段我用的代码,部分内容隐藏。(如果还不行,请再根据问题百度)

import cx_Oracle
#连接数据库,下面括号里内容根据自己实际情况填写
conn = cx_Oracle.connect('用户名/密码@IP:端口号/SERVICE_NAME')
# 使用cursor()方法获取操作游标
cursor = conn.cursor()
#使用execute方法执行SQL语句
result=cursor.execute('Select member_id from member')
#使用fetchone()方法获取一条数据
#data=cursor.fetchone()

#获取所有数据
all_data=cursor.fetchall()

#获取部分数据,8条
#many_data=cursor.fetchmany(8)

print (all_data)
db.close()

工作中只是查询会员号,然后验证会员号,所以增删改就没写,和MySQL差不多,应该能直接迁移,上面有连接MySQL的链接,那里写了MySQL的增删改的代码。

猜你喜欢

转载自blog.csdn.net/zhu940923/article/details/81172968