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

news/2024/8/26 16:06:52 标签: 数据库, oracle, python

目录

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

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

oracle官网下载对应版本的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

http://www.niftyadmin.cn/n/5558285.html

相关文章

基于JAVA+SpringBoot+Vue+uniapp的微信小程序点餐平台

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 点餐小程序主要为小个…

持续集成06--Jenkins构建触发器

前言 在持续集成(CI)的实践中,构建触发器是自动化流程中不可或缺的一环。它决定了何时启动构建过程,从而确保代码变更能够及时地得到验证和反馈。Jenkins,作为业界领先的CI/CD工具,提供了多种构建触发器选项…

electron中app.whenReady()和app.on(‘ready‘)的区别

app.whenReady和app.on(‘ready’)都是用于在Electron应用程序中处理初始化完成事件的方法。app.whenReady是一个返回Promise的方法,它会在应用程序准备好创建窗口时解决。一旦app.whenReady被调用,就可以安全地创建窗口,因为此时Electron的初…

json.loads和json.dumps有什么区别,什么时候用json.loads,什么时候用json.dumps?

发现很多小伙伴对 json.loads() 和 json.dumps() 傻傻分不清,不知道什么时候应该用json.loads(),什么时候用 json.dumps(),这里简单给大家分享一下 json.loads() 和 json.dumps() 是 Python 标准库 json 模块中的两个重要函数,它们之间有…

【排序算法】1.冒泡排序-C语言实现

冒泡排序(Bubble Sort)是最简单和最通用的排序方法,其基本思想是:在待排序的一组数中,将相邻的两个数进行比较,若前面的数比后面的数大就交换两数,否则不交换;如此下去,直…

云备份服务端

文件使用工具和json序列化反序列化工具 //文件和json工具类的设计实现 #ifndef __UTIL__ #define __UTIL__ #include<iostream> #include<fstream> #include<string> #include <vector> #include<sys/stat.h> #include"bundle.h" #inc…

TCP/IP、UDP、HTTP 协议介绍比较和总结

TCP/IP、UDP、HTTP是网络通信中的三种重要协议,各自具有不同的特点和应用场景。以下是对这三种协议的详细介绍、比较和总结。 TCP/IP协议 传输控制协议/互联网协议(TCP/IP, Transmission Control Protocol/Internet Protocol) 特点: 可靠性:TCP提供可靠的通信,通过握手…

Word创建多级列表的样式

Word创建多级列表的样式 要求结果方法创建样式修改样式设置段落创建快捷键 关联多级列表 要求 创建自定义的三级列表样式&#xff0c;要求标题均为黑体&#xff0c;小四字号&#xff0c;1.5倍行距&#xff0c;有快捷键。 结果 方法 在样式中创建三个样式。 创建样式 录入名…