目录
创建一个python项目,并配置运行环境
查看oracle对应数据库版本(该标题下内容只是为了查看版本,不用在意)
解压下载的压缩包,并获取依赖
将依赖文件导入python项目运行环境中
创建一个python项目,并配置运行环境
- 第一步:点击创建项目
- 创建该项目对应的文件目录,建议直接问gpt,我在项目中是使用了非常简单的关联关系,对应每个部分的具体功能如图所示。
oracle%E5%AF%B9%E5%BA%94%E6%95%B0%E6%8D%AE%E5%BA%93%E7%89%88%E6%9C%AC%EF%BC%88%E8%AF%A5%E6%A0%87%E9%A2%98%E4%B8%8B%E5%86%85%E5%AE%B9%E5%8F%AA%E6%98%AF%E4%B8%BA%E4%BA%86%E6%9F%A5%E7%9C%8B%E7%89%88%E6%9C%AC%EF%BC%8C%E4%B8%8D%E7%94%A8%E5%9C%A8%E6%84%8F%EF%BC%89">查看oracle对应数据库版本
- 先在oracle数据库中查看对应的oracle数据库版本【需要根据oracle版本去下载对应的oracle依赖,否则的话会报错说版本不一致问题】。
- 我使用的是DBeaver软件去连接Oracle数据库的,这是连接数据库的软件,不用在意。
-- 执行语句如下 SELECT * FROM v$version;
oracle%E5%AE%98%E7%BD%91%E4%B8%8B%E8%BD%BD%E5%AF%B9%E5%BA%94%E7%89%88%E6%9C%AC%E7%9A%84oracle%E5%AE%A2%E6%88%B7%E7%AB%AF">从oracle官网下载对应版本的oracle客户端
- 浏览器直接搜索oracle.com即可,进入官网,找到对应的下载版本,我使用的是windows系统,所以从windows系统下的不同版本中选择“Oracle数据库对应的版本”
- 选择对应的版本后,从该版本多个不同的套餐中选择自己需要的,因为我只需要连接到oracle数据库进行简单的增删查改,所以就选择第一个套餐。
解压下载的压缩包,并获取依赖
- 解压下载到的压缩包,并从其中找到python项目所需的依赖
python%E9%A1%B9%E7%9B%AE%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83%E4%B8%AD">将依赖文件导入python项目运行环境中
- 将前面的oracle版本依赖导入到python项目运行环境中,直接复制粘贴即可,粘贴的目录通常位于你的Python安装目录下的
Lib\site-packages文件夹下面
- 到这里就大功告成了,直接运行代码即可
- 代码如下:
python">import json
import logging
from datetime import datetime
import cx_Oracle
def sql_data_process(sql, limit: str = None, pageNo: str = None):
result = []
try:
# Replace with your Oracle database connection details
# connection = cx_Oracle.connect("usr_xwpt", "SUES06_wxpt", "192.168.110.168:1521/orcl")
connection = cx_Oracle.connect("用户名", "密码", "主机名:1521/orcl")
cursor = connection.cursor()
cursor.execute(sql)
resultProxy = cursor.fetchall()
# 获取列名
columns = [desc[0] for desc in cursor.description]
result = []
for row in resultProxy:
# 创建一个空字典来存储行数据
row_data = {}
for i, col in enumerate(columns):
# 使用整数索引访问元组中的元素
cell = row[i]
# 检查是否为日期时间类型
if isinstance(cell, datetime):
# 将日期时间类型转换为字符串格式
cell = cell.strftime('%Y-%m-%d %H:%M:%S')
# 将列名和转换后的单元格数据存储在字典中
row_data[col] = cell
result.append(row_data)
cursor.close()
connection.close()
except Exception as e:
print(f"sql执行失败,失败原因:{str(e)}")
pass
if limit and pageNo:
# 实现分页功能
start_limit = (int(pageNo) - 1) * int(limit)
end_limit = start_limit + int(limit)
return result[start_limit:end_limit]
return result