python项目读取oracle数据库方法(cx_Oracle库实现)

目录

创建一个python项目,并配置运行环境

查看oracle对应数据库版本(该标题下内容只是为了查看版本,不用在意)

从oracle官网下载对应版本的oracle客户端

解压下载的压缩包,并获取依赖

将依赖文件导入python项目运行环境中


创建一个python项目,并配置运行环境
  • 第一步:点击创建项目
  • 创建该项目对应的文件目录,建议直接问gpt,我在项目中是使用了非常简单的关联关系,对应每个部分的具体功能如图所示。
查看oracle对应数据库版本
  • 先在oracle数据库中查看对应的oracle数据库版本【需要根据oracle版本去下载对应的oracle依赖,否则的话会报错说版本不一致问题】。

  • 我使用的是DBeaver软件去连接Oracle数据库的,这是连接数据库的软件,不用在意。

    sql 复制代码
    -- 执行语句如下
    SELECT * FROM v$version;
从oracle官网下载对应版本的oracle客户端
  • 浏览器直接搜索oracle.com即可,进入官网,找到对应的下载版本,我使用的是windows系统,所以从windows系统下的不同版本中选择"Oracle数据库对应的版本"
  • 选择对应的版本后,从该版本多个不同的套餐中选择自己需要的,因为我只需要连接到oracle数据库进行简单的增删查改,所以就选择第一个套餐。
解压下载的压缩包,并获取依赖
  • 解压下载到的压缩包,并从其中找到python项目所需的依赖
将依赖文件导入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
相关推荐
用户6279947182624 分钟前
南大通用GBase 8c分布式版本gha_ctl 命令-HI参数详解
数据库
The Future is mine11 分钟前
Python计算经纬度两点之间距离
开发语言·python
斯汤雷12 分钟前
Matlab绘图案例,设置图片大小,坐标轴比例为黄金比
数据库·人工智能·算法·matlab·信息可视化
九月镇灵将13 分钟前
GitPython库快速应用入门
git·python·gitpython
SQLplusDB19 分钟前
Oracle 23ai Vector Search 系列之3 集成嵌入生成模型(Embedding Model)到数据库示例,以及常见错误
数据库·oracle·embedding
喝醉酒的小白40 分钟前
SQL Server 可用性组自动种子设定失败问题
数据库
兔子的洋葱圈1 小时前
【django】1-2 django项目的请求处理流程(详细)
后端·python·django
chem41111 小时前
Conmon lisp Demo
服务器·数据库·lisp
独好紫罗兰1 小时前
洛谷题单3-P5719 【深基4.例3】分类平均-python-流程图重构
开发语言·python·算法
27669582921 小时前
美团民宿 mtgsig 小程序 mtgsig1.2 分析
java·python·小程序·美团·mtgsig·mtgsig1.2·美团民宿