windows下Idea中用Python访问oracle数据库的方法
1.先说一下踩过的坑,第一个坑是网络上那个通过OJDBC桥接的方法import jaydebeapi 的方法,我这里跑过之后发现能取数据成功,但是
取出来的数如日期什么的会自动切分,不适合。
第二个巨坑是用cx_Oracle的时候很多人说要安装什么客户端,其实是不要的,也不要配置什么环境变量。
2.我最终也是用cx_Oracle的方法访问的,先看Python版本问题。
首先是自己电脑命令下的Python要保证和Idea编译环境的版本要同一个,至少是一个版本。
我的Idea的环境一开始是Python3.9.5,但是电脑CMD命令下的是3.1.0
因为我配置的时候几乎没有找到cx_Oracle对应的是3.1.0的版本,所以要先把本地CMD命令下的Python版本改成3.9.5
我是通过更改系统环境变量配置实现的,这个部分可以搜索"设置Python环境变量“,因为是人为设置,要记得pi的命令也要设置。
3.其次是寻找对应Python版本的cx_Oracle,我的python 3.9.5对应的包只有cx_oracle-8.2.1-cp39-cp39-win_amd64.whl,这个包别人说
是Oracle和Python版本都要一样,但是我的oracle 是11.2,这里写的包是8.2.1,一样可以用。所以我想最主要的是要Python的版本要和这个包一样。
然后安装
pip install cx_Oracle-8.2.1-cp39-cp39-win_amd64.whl
4.这是最后一步配置所谓的客户端,但是不需要配置环境变量。
将instantclient_11_2这个客户端的文件下载后,将后缀为.DLL的所有文件复制到Python的安装目录下,我的是C:\Users\Administrator\AppData\Local\Programs\Python\Python39
5,最后一步是代码测试,数据结果显示正常。说明这个方法是可行的。
import matplotlib.pyplot as plt import numpy as np import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv) import pymssql # 引入pymssql模块 import seaborn as sns # Provides a high level interface for drawing attractive and informative statistical graphics from matplotlib.font_manager import FontProperties from pylab import * import cx_Oracle conn = cx_Oracle.connect('system/manager@172.16.199.195/ivfhis') curs = conn.cursor() sql = 'select * from OUTP_RCPT_MASTER ou' curs.execute(sql) for result in curs: print(result) curs.close() conn.close() # if __name__ == '__main__': # conn=cx_Oracle.connect('system','manager','172.16.199.195:1521/ivfhis') # cursor=conn.cursor() print("连接成功!") # # # cursor.close() conn.commit() conn.close()