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()

  

posted @ 2021-10-12 13:03  残阳飞雪  阅读(248)  评论(0编辑  收藏  举报