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


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

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

头条号:小豆君编程分享

相关文章
|
22天前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
120 68
|
19天前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
26 7
|
19天前
|
Oracle 关系型数据库 数据库
oracle数据库技巧
【10月更文挑战第25天】oracle数据库技巧
22 6
|
19天前
|
存储 Oracle 关系型数据库
Oracle数据库优化策略
【10月更文挑战第25天】Oracle数据库优化策略
17 5
|
18天前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
32 3
|
18天前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
16 1
|
18天前
|
Java 数据库连接 数据库
Java连接池在数据库性能优化中的重要作用。连接池通过预先创建和管理数据库连接,避免了频繁创建和关闭连接的开销
本文深入探讨了Java连接池在数据库性能优化中的重要作用。连接池通过预先创建和管理数据库连接,避免了频繁创建和关闭连接的开销,显著提升了系统的响应速度和吞吐量。文章介绍了连接池的工作原理,并以HikariCP为例,展示了如何在Java应用中使用连接池。通过合理配置和优化,连接池技术能够有效提升应用性能。
33 1
|
21天前
|
SQL 关系型数据库 数据库连接
"Nacos 2.1.0版本数据库配置写入难题破解攻略:一步步教你排查连接、权限和配置问题,重启服务轻松解决!"
【10月更文挑战第23天】在使用Nacos 2.1.0版本时,可能会遇到无法将配置信息写入数据库的问题。本文将引导你逐步解决这一问题,包括检查数据库连接、用户权限、Nacos配置文件,并提供示例代码和详细步骤。通过这些方法,你可以有效解决配置写入失败的问题。
46 0
|
Oracle 关系型数据库 数据库
|
Oracle 关系型数据库 数据库