• 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:UsersAdministratorAppDataLocalProgramsPythonPython39

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

      

  • 相关阅读:
    省级联动(使用ajax实现)
    java学习之 反射
    自己写的代码生成器
    java中关于StackTraceElement的使用
    在Java中判断数组中包含某个元素的几种方式的比较
    android PopupWindow 点击外面消失
    android获取textview的行数
    多线程关于腾讯笔试题
    FrameLayout的点击问题
    自定义SnackBar
  • 原文地址:https://www.cnblogs.com/canyangfeixue/p/15397407.html
Copyright © 2020-2023  润新知