• python连接orcal数据库以及解决1047报错方法(已解决)


    背景
    1、自动化测试过程中需要用python连接数据库对界面上计算出来的数据进行校验
    2、平时查询数据库用的PLSQL,公司用的orcal数据库
    3、cmd打开命令提示符,输入python,提示版本位3.9,64位,plsql新建sql window查询,输入select * from v$version,看到plsql是64位的
    在这里插入图片描述

    4、写在前面:安装的python、instantclient位数需要一致
    5、python连接orcal数据库需要用到cx_Oracle这个库,python3以上版本在终端用命令pip3 install cx_Oracle安装,如果安装不成功可以看我上一篇文章怎么解决的
    6、看到下图说明安装成功了在这里插入图片描述
    7、显示安装成功,但是在写代码的时候导入一直报错怎么回事?
    解决办法:先看左侧下有没有,没有的话重启pycharm看看,还没有的话,双击shift键,打开,手动搜一下再添加(我就是这么解决的)在这里插入图片描述
    在这里插入图片描述
    8、接下来我们开始写代码了,连接代码如下:

    import cx_Oracle
    
     # 连接数据库,有好几种写法,后续补充
    conn = cx_Oracle.connect('用户名', '密码', '地址:端口/服务')  # 这里替换成对应的值就可以了
    # 使用cursor()方法获取操作游标
    cursor = conn.cursor()
    # 使用execute方法执行SQL语句
    result = cursor.execute("sql语句 ")
    # 多行sql的时候用三引号可以进行换行,看起来比较美观
    # 使用fetchone()方法获取一条数据
    data = result.fetchone()
    # 获取所有数据
    all_data = result.fetchall()
    # 获取部分数据,8条
    many_data = result.fetchmany(8)
    print(data)
    cursor.close()
    conn.close()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    查询的记过中包含中文出现乱码时,写入

    import os
    os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
    
    • 1
    • 2

    9、写完可以运行程序了,出现以下报错(网上解决方法很多,大家真的要判断自己的情况后再改动)
    在这里插入图片描述
    可能原因有:

    • python、instant client位数不匹配,我就是这个原因,下载64位的instant client,我在这里下载的:http://www.itmop.com/?down(看起来有点不正经,但是注册orcal账号好麻烦)

    10.1 先改环境变量,一共有三个地方需要改**(这一步很重要,不能改错)**:
    系统变量中新建下图,写入instantclient 存放路径,地址要复制全,到最里面的数字结尾的文件夹地址
    在这里插入图片描述Path路径中,加上上述路径在这里插入图片描述
    新建系统变量,填入下图值
    在这里插入图片描述
    10.2 把instant client 文件夹下的以下4个文件复制粘贴到python安装目录下-Lib -site-packages文件夹下,应该是选其中三个,我尝试了以后也分不清放了那个才成功的,就一起复制过去了
    在这里插入图片描述
    在这里插入图片描述
    10.3 重新启动pycharm,运行代码就可以了

  • 相关阅读:
    【JavaEE】Servlet实战案例:表白墙网页实现
    【数据结构与算法】之深入解析“两个盒子中球的颜色数相同的概率”的求解思路与算法示例
    ICMP隐蔽隧道攻击分析与检测(三)
    Bugly iOS自动导入符号表
    FFmpeg将视频包AVPacket通过视频流方式写入本地文件
    【Go】-调用企微机器人
    ​力扣解法汇总1260-二维网格迁移
    设置 Linux 命令别名
    LLaMA模型指令微调 字节跳动多模态视频大模型 Valley 论文详解
    采用PHP开发的一套(项目源码)医疗安全(不良)事件报告系统源码:统计分析,持续整改,完成闭环管理
  • 原文地址:https://blog.csdn.net/weixin_44722536/article/details/125527762