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

目录

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

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

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

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

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


创建一个python项目,并配置运行环境
  • 第一步:点击创建项目
  • 创建该项目对应的文件目录,建议直接问gpt,我在项目中是使用了非常简单的关联关系,对应每个部分的具体功能如图所示。
查看oracle对应数据库版本
  • 先在oracle数据库中查看对应的oracle数据库版本【需要根据oracle版本去下载对应的oracle依赖,否则的话会报错说版本不一致问题】。
  • 我使用的是DBeaver软件去连接Oracle数据库的,这是连接数据库的软件,不用在意。
    -- 执行语句如下
    SELECT * FROM v$version;
    
从oracle官网下载对应版本的oracle客户端
  • 浏览器直接搜索oracle.com即可,进入官网,找到对应的下载版本,我使用的是windows系统,所以从windows系统下的不同版本中选择“Oracle数据库对应的版本”
  • 选择对应的版本后,从该版本多个不同的套餐中选择自己需要的,因为我只需要连接到oracle数据库进行简单的增删查改,所以就选择第一个套餐。
解压下载的压缩包,并获取依赖
  • 解压下载到的压缩包,并从其中找到python项目所需的依赖
将依赖文件导入python项目运行环境中
  • 将前面的oracle版本依赖导入到python项目运行环境中,直接复制粘贴即可,粘贴的目录通常位于你的Python安装目录下的Lib\site-packages文件夹下面
  • 到这里就大功告成了,直接运行代码即可
  • 代码如下:
import json
import logging
from datetime import datetimeimport cx_Oracledef sql_data_process(sql, limit: str = None, pageNo: str = None):result = []try: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] = cellresult.append(row_data)cursor.close()connection.close()except Exception as e:print(f"sql执行失败,失败原因:{str(e)}")passif 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.mzph.cn/pingmian/48238.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

82. UE5 RPG 实现角色升级系统(下)

书接上回,在上一篇博客里,我们实现了角色升级的基础的功能。给敌人增加的经验奖励配置,并且在敌人死亡时,能够将经验通过事件传递给击杀者,玩家定义了被动技能,在被动技能中接收传递的事件,通过…

iOS 开发包管理之CocoaPods

CocoaPods(Objective-C 时期,支持Objective-C和swift),CocoaPods下载第三方库源代码后会将其编译成静态库.a 文件 或动态库框架.framework 文件 的形式,并将它们添加到项目中,建立依赖关系,这种…

Redis实现用户会话

1.分布式会话 (1)什么是会话 会话Session代表的是客户端与服务器的一次交互过程,这个过程可以是连续也可以是时断时续的。曾经的Servlet时代(jsp),一旦用户与服务端交互,服务器tomcat就会为用户创建一个session&#…

开源PDF解析工具marker 和 MinerU的解析效果对比

RAG中的文档解析需求:需要的是文档的完整段落,标题,图片,表格。我们希望删除的是md格式,或者josn格式。 MinerU 和 maker恰好。都是能够满足此需求的开源工具。这篇文章分享一下对两者的对比。整理出来目前还存在的问题…

RPG素材Unity7月20闪促限时4折游戏开发资产兽人角色模型动画休闲放置模板物理交互流体水下焦散VR界面UI2D模板场景20240720

今天这个是RPG素材比较多,还有一些休闲放置模板、FPS场景素材、角色模型、动画、特效。 详细内容展示:www.bilibili.com/video/BV1Tx4y1s7vm 闪促限时4折:https://prf.hn/l/0eEOG1P 半价促销:https://prf.hn/l/RlDmDeQ 7月闪促…

可再生能源工厂系统 (REPS) - 项目源码

狗头警告,这是VIP文章! 说明: 文件1: REPS_2024.pdf 可再生能源工厂系统 (REPS) 概述 可再生能源工厂 (REP) 是一个多代能源系统工厂,负责为城市、工业等生产可再生能源。可再生能源通常在世界各地的任何地点都可获得,具体取决于类型。此外,与常规能源相比,使用可再生…

【Flask项目】文件分享系统(二)

前一篇文章简单分析了基于Flask的文件分享系统,功能设计的很简单,就是浏览目录,支持文件的上传和下载,那么用flask该如何来实现呢,其实也很简单。 一个Flask程序必须包含实例、路由、视图函数、响应,才能正…

探索Perl的文件系统插件:灵活的系统扩展

探索Perl的文件系统插件:灵活的系统扩展 Perl是一种高度灵活和强大的脚本语言,它提供了丰富的API来处理文件和目录。文件系统插件机制是Perl中一个非常有用的功能,它允许开发者通过插件扩展文件系统的功能。本文将详细介绍如何在Perl中使用文…

谷粒商城实战-Vue学习过程中踩坑记录

一&#xff0c;自闭合的<script>标签 第一次使用Vue&#xff0c;按照步骤引入vue.js&#xff0c;创建div&#xff0c;创建Vue对象&#xff0c;但是未达预期效果。 插值表达式{{name}}没被替换为data对象中的属性值。 F12看了下网页源代码&#xff0c;发现创建Vue对象的…

OpenAI突发新模型GPT-4o mini,GPT-3.5退役!

OpenAI突发新模型&#xff0c;全面取代老去的GPT-3.5——GPT-4o mini&#xff01; 免费用户已可使用GPT-4o mini模型。 GPT-4o mini&#xff0c;能力接近原版GPT-4&#xff0c;价格却要便宜一个数量级&#xff1a; GPT-4o mini:每百万输入tokens&#xff0c;15美分&#xff0…

JVM工具实战:线上问题排查与性能分析

文章目录 jps&#xff1a;java 进程获取jstat&#xff1a;虚拟机统计信息监视工具jinfo&#xff1a;java 配置信息工具jmap&#xff1a;java 内存映像工具jstack&#xff1a;Java 堆栈跟踪工具 在程序运行过程中&#xff0c;我们可能会遇到各种问题&#xff0c;而稳定性风险是我…

RabbitMQ线程和连接模型详解

1. 线程、信道、连接、请求的概念 客户端&#xff08;生产者&#xff09;和服务端&#xff08;服务端&#xff09;之间建立连接。例如TCP连接&#xff0c;是一个长连接&#xff0c;也是较为稳定的连接&#xff0c;开销也较大。一般而言主客户端之间需要一个连接。但服务器需要…

【Node.js基础03】利用http模块创建Web服务

一&#xff1a;使用步骤 1 加载http模块&#xff0c;并创建Web服务程序 2 利用Web服务程序监听request事件&#xff0c;设置响应头和响应体 3 配置端口号并启动Web服务 4 浏览器请求设置的端口号&#xff0c;进行Web服务程序测试 二&#xff1a;简单应用 const http requir…

基于多线程延迟排序的睡眠排序算法的创新与改进

基于多线程延迟排序的睡眠排序算法的创新与改进 摘要 本文在传统睡眠排序算法的基础上&#xff0c;提出了一种改进方案&#xff0c;旨在优化处理负数和大规模数据集的性能。通过引入线程池管理和数据分段排序技术&#xff0c;改进后的算法在处理大数据集和包含负数的数据集时…

计算机网络入门 -- TCP详解

计算机网络入门 – TCP详解 1.TCP协议 1.1 报文格式 1.32位序号&#xff1a;该条TCP数据携带的起始序号。 2.32位确认序号&#xff1a;期望对方发送数据从那个序号开始发送。 3.4位首部长度&#xff1a;最大为0xF(15)&#xff0c;指的是TCP头部长度。 首部长度 4 位首部长…

谷粒商城实战笔记-37-前端基础-Vue-基本语法插件安装

文章目录 一&#xff0c;v-model1&#xff0c;双向绑定2&#xff0c;vue的双向绑定2.1 html元素上使用指令v-model2.2 model中声明对应属性2.3&#xff0c;验证view绑定modelmodel绑定view 完整代码 二&#xff0c;v-on1&#xff0c;指令简介2&#xff0c;在button按钮中添加v-…

rimraf快速删除node_modules方法

项目中&#xff0c;有时候会遇到下载依赖报错&#xff0c;然后想要删除node_modules再重新下载&#xff0c;但是有时候直接用yarn 或者npm install仍热不行&#xff0c;我们可以尽量用yran&#xff0c;因为npm 可能会自动下一些给一些包升级了&#xff0c;此时因为前面已经下过…

JVM:GraalVM

文章目录 一、介绍1、什么是GraalVM&#xff1a;2、GraalVM版本 二、两种使用模式 一、介绍 1、什么是GraalVM&#xff1a; GraalVM是Oracle官方推出的一款高性能JDK&#xff0c;使用它享受比OpenJDK或者OracleJDK更好的性能。GraalVM的官网地址&#xff1a;https://www.graa…

泛型新理解

1.创建三个类&#xff0c;并写好对应关系 package com.jmj.gulimall.study;public class People { }package com.jmj.gulimall.study;public class Student extends People{ }package com.jmj.gulimall.study;public class Teacher extends People{ }2.解释一下这三个方法 pub…

Xubuntu22.04 终端命令调用图形设置工具

最近将软件运行环境从Xubuntu16.04迁移到了Xubuntu22.04&#xff0c;主要是为了解决Qt程序的图形渲染使用集显去处理&#xff0c;而不是使用CPU。https://blog.csdn.net/qq_45445740/article/details/134495914 使用Xubuntu22.04系统发现很多图形设置工具不太容易在桌面找到&am…