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
相关推荐
深盾科技3 分钟前
融合C++与Python:兼顾开发效率与运行性能
java·c++·python
CC大煊13 分钟前
【java】Druid数据库连接池完整配置指南:从入门到生产环境优化
java·数据库·springboot
学Linux的语莫20 分钟前
mysql主从同步(复制)搭建
数据库·mysql
yaoh.wang22 分钟前
力扣(LeetCode) 104: 二叉树的最大深度 - 解法思路
python·程序人生·算法·leetcode·面试·职场和发展·跳槽
SelectDB26 分钟前
慢 SQL 诊断准确率 99.99%,天翼云基于 Apache Doris MCP 的 AI 智能运维实践
数据库·人工智能·apache
JIngJaneIL27 分钟前
基于java+ vue交友系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·交友
木头左31 分钟前
机器学习辅助的LSTM交易策略特征工程与入参筛选技巧
python
Lenyiin34 分钟前
《 Linux 修炼全景指南: 八 》别再碎片化学习!掌控 Linux 开发工具链:gcc、g++、GDB、Bash、Python 与工程化实践
linux·python·bash·gdb·gcc·g++·lenyiin
Swizard39 分钟前
告别“意大利面条”:FastAPI 生产级架构的最佳实践指南
python·fastapi
不惑_1 小时前
通俗理解卷积神经网络
人工智能·windows·python·深度学习·机器学习