python 连接oracle数据库的过程步骤(亲测有效)--windows

news2024/12/24 2:02:55

目录

1. 安装 cx_Oracle 模块

2. 安装 oracle 客户端

3. 连接 oracle数据库


连接oracle数据库的过程中遇到很多问题,不过好在一一解决了,特地将解决问题的过程记录下来供友友们参考~

1. 安装 cx_Oracle 模块

具体可参考 PyCharm 安装 cx_Oracle 失败-CSDN博客

 安装之后,就可以导入了,具体如图:

2. 安装 oracle 客户端

 

很多人没有安装oracle客户端直接运行python代码连接oracle,结果就是报错,报错内容如下:

cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library

解决方法:

安装oracle客户端 

① 由于我的python版本是64bit的,这里oracle我也下载的windows 64bit的,具体版本是18.5中的Basic Package,下载链接如下:

Instant Client for Microsoft Windows (x64) 64-bit

②  下载完之后解压缩:

③ 安装Visual Studio 

Visual Studio是安装好oracle 客户端必备的组件。

这里是因为我用的版本为18.5的 oracle客户端,所以需要安装与之相匹配的Visual Studio 2013,下载链接为:Latest supported Visual C++ Redistributable downloads | Microsoft Learn

oracle客户端与visual studio的对应关系如下:

④在python代码中设置 oracle 客户端

import cx_Oracle

cx_Oracle.init_oracle_client(
    lib_dir=r"C:\software\Oracle client\instantclient-basic-windows.x64-18.5.0.0.0dbru\instantclient_18_5")

注:oracle 客户端的安装过程可参考官方链接cx_Oracle 8 Installation — cx_Oracle 8.3.0 documentation

 

3. 连接 oracle数据库

连接oracle数据库可参考代码: 

import cx_Oracle

cx_Oracle.init_oracle_client(
    lib_dir=r"C:\software\Oracle client\instantclient-basic-windows.x64-18.5.0.0.0dbru\instantclient_18_5")


if __name__ == "__main__":

    con =cx_Oracle.connect('用户名', '密码', '10.220.200.40:1521/CISRI_POI_DB')  # 创建连接
    cursor = con.cursor()  # 创建游标
    cursor.execute("select * from POI_MATERIAL.V_SLABRECORD_ROLLTIME_STATISTICS")  # 执行sql语句
    data = cursor.fetchone()  # 获取一条数据
    print(data)  # 打印数据
    cursor.close()  # 关闭游标
    con.close()  # 关闭数据库连接

运行上述的代码就能连接oracle数据库,获取数据了:

 注:由于我连的不是本地的数据库,所以需要先登录一下vpn账号

 

Oracle数据库真的没有Mysql数据库好处理啊,相对会麻烦一些,希望友友们都能按照我的方法顺利解决Bug~   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1133362.html

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

相关文章

急需一个免费又实用的配音软件~

做自媒体的朋友肯定需要用到大量的文案配音,又不想自己配,就只能在网上找AI配音的小程序、网站和软件,可是找了,又有很多效果不好,情绪单调。 不过没关系,今天我将为大家介绍一款超实用的配音网站&#xf…

【Unity程序技巧】2D音乐中心管理器

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

MII,RMII,GMII,RGMII区别

一、MII,GMII为百兆网口 1.MII ①引脚接线图 ②引脚定义 2.GMII ①引脚接线图 ②引脚定义 二、GMII,RGMII为千兆网口 1.GMII ①GMII引脚接线图 ②GMII引脚定义 2.RGMII ①RGMII引脚接线图 ②RGMII引脚定义 三、PCB走线注意 ① RGMII 模式下,MAC 的 RXD0&a…

WireShark使用入门

背景 Wireshark,又被称为网络封包分析软件,是一种开源且功能十分强大的工具。该工具的主要功能是截取各种网络封包,并尽可能显示出最为详细的网络封包资料。它使用WinPCAP作为接口,直接与网卡进行数据报文交换。 Wireshark支持W…

简单有效的方法压缩图片大小,尝试一键自动压缩!

如果图片过大,会占据我们过多的存储空间,可能会引起电脑的卡顿,传输的速度很慢,也很容易传输失败,这时候可以把图片压缩(https://www.yasuotu.com/)一下,那么怎么才能快速压缩图片大…

【Note】完全二叉树的类型定义

完全二叉树 完全二叉树:深度为k,结点数为n的二叉树,如果其结点1~n的位置序号分别与等高的满二叉树的结点1~n的位置序列一一对应,则为完全二叉树。 完全二叉树的特点: 叶子结点只可能出现在最后两层。度为1的结点个数…

关于c语言,你必须了解的运行流程

流程图 1.程序的翻译环境和执行环境 在ANSIC任何一种实现下,都存在两种环境,程序的翻译环境和执行环境 翻译环境:将源代码转换成机器指令 执行环境:用于执行代码 2.详解编译链接 简单的说一个代码从编写到看到控制台的结果分为编译链接两步即可,接下来我们将详细解释编译链接中…

6 STM32标准库函数 之 内部集成电路(I2C) 所有函数的介绍及使用

6 STM32标准库函数 之 内部集成电路(I2C)所有函数的介绍及使用 1. 图片有格式2 文字无格式六 库函数之内部集成电路(I2C)所有函数的介绍及使用前言一、图片预览,无格式(CSDN)二、 I2C库函数固件…

(链表) 25. K 个一组翻转链表 ——【Leetcode每日一题】

❓ 25. K 个一组翻转链表 难度:困难 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保…

Python-股票市场用于算法交易的人类反馈强化学习 (RLHF)

ChatGPT 的成功使人类反馈强化学习 (RLHF) 技术成为人们关注的焦点。RLHF 是一种机器学习方法,它结合了强化学习 (RL) 和人类反馈 (HF) 来改进学习过程。这篇文章将使您对 RLHF 有一个全面的了解。它描述了 RLHF 在算法交易(algo transactions)中的应用,并提供了可执行的 P…

TLSF内存管理算法原理详解

TLSF算法原理概述 TLSF算法的核心优势在于其通过位运算执行内存块匹配算法,并兼顾了内存管理的额外内存消耗,无论是从内存池申请内存块还是释放内存块回内存池其操作都是O(1)。TLSF组织了一张一二级索引表映射其所有管理内存块的闲忙状态,并通…

简单聊下Redis的主从复制和哨兵机制以及集群(面试题)

ChatGPT的简答: Redis的主从复制(Master-Slave Replication)是指将一个Redis服务器的数据复制到其他Redis服务器的过程,其中一个服务器作为主节点(Master),而其他服务器作为从节点(S…

基于SSM的居家养老系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

快速学习如何注册域名企业邮箱,只需5分钟

网站最重要的一个东西,就是你要有一个域名邮箱,显得你的邮箱更加专业,怎么样去申请一个域名邮箱,之前也出过一些内容给过大家,很多方法已经过时了,今天给大家更新一个最新版的,怎么样去申请一个…

【C++代码】安排行程,N皇后,解数独--代码随想录

题目:重新安排行程 给你一份航线列表 tickets ,其中 tickets[i] [fromi, toi] 表示飞机出发和降落的机场地点。请你对该行程进行重新规划排序。所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必…

6、实现多段运动【51单片机控制步进电机-TB6600系列】

摘要:本节介绍用控制步进电机三个主要参数角度、速度、方向,实现简单的步进电机多段控制 一、目标功能 输入多个目标角度,以及每个角度对应的速度,实现步进电机的多段多速度转动 二、计算过程 2.1 简化C与n函数关系 根据上一节内…

Go基础——基础语法

1、简介 Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。语法类似于C,专为高性能和并发程序而设计。通常用于网络编程、云服务器、游戏服务器、DevOps、Web应用、分布式系统、容器虚…

[AutoSAR系列] 1.3 AutoSar 架构

依AutoSAR及经验辛苦整理,原创保护,禁止转载。 专栏 《深入浅出AutoSAR》 1. 整体架构 ​ 图片来源: AutoSar 官网 从官往图中可以看出autosar作为汽车ECU软件架构,是通过分层来实现软硬件隔离。就像大多数操作系统一样&#xff…

Linux系统编程_线程:线程、互斥量、条件变量

1. 线程概述(与进程的区别及线程的优势)(437.1) Linux多线程编程初探 https://www.cnblogs.com/xiehongfeng100/p/4620852.html 进程与线程 典型的 UNIX/Linux 进程可以看成只有一个控制线程:一个进程在同一时刻只做…

低概率Bug,研发敷衍说复现不到

测试工作中,经常会遇到一些低概率出现的问题,如果再是个严重问题,那测试人员的压力无疑是很大的,一方面是因为低概率难以复现,另一面则是来自项目组的压力。 如何在测试时减少此类问题的重复投入,我的思考如…