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、看到下图说明安装成功了python连接orcal数据库以及解决1047报错方法(已解决)_第1张图片
7、显示安装成功,但是在写代码的时候导入一直报错怎么回事?
解决办法:先看左侧下有没有,没有的话重启pycharm看看,还没有的话,双击shift键,打开,手动搜一下再添加(我就是这么解决的)python连接orcal数据库以及解决1047报错方法(已解决)_第2张图片
python连接orcal数据库以及解决1047报错方法(已解决)_第3张图片
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()

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

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

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

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

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

你可能感兴趣的:(web,数据库,python,oracle)