Python连接Oracle数据库完美教程

简介: Python连接Oracle数据库完美教程

最近小豆君在做python连接Oracle数据库时发现有很多坑,网上搜到的也是不够详细,故整理一下供大家参考,避免入坑

1 场景

你已经在服务器上创建了Oracle数据库

现在要用python去连接Oracle


2 连接Oracle基本知识

01ebd755782e4c909dad0843d3544acf.jpeg

我们使用python库cx_Oracle来连接Oracle

Oracle分服务端和客户端、服务端又分监听程序和数据库实例

所以,当我们在本地开发时,需要安装cx_Oracle、OracleClient


3 部件下载

我们确认的顺序是,一定要注意,如果你的python和OracleClient要都是32位的,64位的同理。

也就是说,只能有以下两种组合情况:

python_x86 => cx_Oracle(32和64都可以) => OracleClient_x86

python_x64 => cx_Oracle(32和64都可以) => OracleClient_x64

python我就不说了,直接到官网下

2.1 cx_Oracle

python3.6或更高版本,直接使用pip下载最新的即可

方法1: pip安装:python -m pip install cx_Oracle --upgrade

如果是python2,你需要下7.3版本的

方法2:下载其它版本 https://pypi.org/project/cx-Oracle/#history

要选择对应python版本的包下载

pip install xxx.whl

01ebd755782e4c909dad0843d3544acf.jpeg


2.2 Oracle Instant Client

Free tools and libraries for connecting to Oracle Database

01ebd755782e4c909dad0843d3544acf.jpeg

虽然oracle官网有如下介绍:

版本21客户端库可以连接到Oracle数据库12.1或更高版本。版本19、18和12.2的客户端库可以连接到Oracle数据库11.2或更高版本。12.1版本的客户端库可以连接到Oracle数据库10.2或更高版本。版本11.2客户端库可以连接到Oracle数据库9.2或更高版本。

但我还是推荐大家版本最好一一对应,如你要连接oracle11,则下载

01ebd755782e4c909dad0843d3544acf.jpeg

下载的文件解压,复制oci,oraocci11,oraociei11的3个DLL粘贴到你的Python目录的Lib/site-packages文件夹下面。(粘贴原因:不需要配置环境变量) ,否则你需要配置ORACLE_HOME环境变量


4 测试代码

def test():
    import cx_Oracle
    # 去掉以下注释则不需要拷贝动态库
    # import os
    # os.environ["ORACLE_HOME"] = r'F:\soft\setup\oracle\instantclient_11_2'
    user = 'scott'
    password = 'scott'
    host = '192.168.153.134:1521'
    service_name = 'helowinXDB'
    conn_str = f"{user}/{password}@{host}/{service_name}"# ('system/system@172.24.0.64:1521/helowinXDB')
    connect = cx_Oracle.connect(conn_str)
    cursor = connect.cursor()
    cursor.execute('select * from mytesttable')
    print(cursor.fetchall())
test()


参考链接:

cx_Oracle 8 Installation


喜欢本文的大家就点个赞吧,同时也欢迎关注

微信号:小豆君编程分享 (关注后,可加入小豆君交流群进行学习交流,也可第一时间看到最新文章)

头条号:小豆君编程分享

相关文章
|
6月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
548 93
|
5月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】使用NetManager创建Oracle数据库的监听器
Oracle NetManager是数据库网络配置工具,用于创建监听器、配置服务命名与网络连接,支持多数据库共享监听,确保客户端与服务器通信顺畅。
315 0
|
8月前
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。
|
6月前
|
SQL Java 关系型数据库
Java连接MySQL数据库环境设置指南
请注意,在实际部署时应该避免将敏感信息(如用户名和密码)硬编码在源码文件里面;应该使用配置文件或者环境变量等更为安全可靠地方式管理这些信息。此外,在处理大量数据时考虑使用PreparedStatement而不是Statement可以提高性能并防止SQL注入攻击;同时也要注意正确处理异常情况,并且确保所有打开过得资源都被正确关闭释放掉以防止内存泄漏等问题发生。
287 13
|
6月前
|
SQL 关系型数据库 MySQL
MySQL数据库连接过多(Too many connections)错误处理策略
综上所述,“Too many connections”错误处理策略涉及从具体参数配置到代码层面再到系统与架构设计全方位考量与改进。每项措施都需根据具体环境进行定制化调整,并且在执行任何变更前建议先行测试评估可能带来影响。
1534 11
|
6月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
436 8
|
8月前
|
SQL Oracle 关系型数据库
比较MySQL和Oracle数据库系统,特别是在进行分页查询的方法上的不同
两者的性能差异将取决于数据量大小、索引优化、查询设计以及具体版本的数据库服务器。考虑硬件资源、数据库设计和具体需求对于实现优化的分页查询至关重要。开发者和数据库管理员需要根据自身使用的具体数据库系统版本和环境,选择最合适的分页机制,并进行必要的性能调优来满足应用需求。
402 11
|
8月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—服务器异常断电导致Oracle数据库报错的数据恢复案例
Oracle数据库故障: 某公司一台服务器上部署Oracle数据库。服务器意外断电导致数据库报错,报错内容为“system01.dbf需要更多的恢复来保持一致性”。该Oracle数据库没有备份,仅有一些断断续续的归档日志。 Oracle数据库恢复流程: 1、检测数据库故障情况; 2、尝试挂起并修复数据库; 3、解析数据库文件; 4、导出并验证恢复的数据库文件。
|
SQL 关系型数据库 MySQL
用 Python 连接数据库并进行查询。
【2月更文挑战第12天】【2月更文挑战第32篇】用 Python 连接数据库并进行查询。
267 0