python-oracledb 已率先支持 Oracle 23ai

python-oracledb 介绍

python-oracledb (以下简称 oracledb) 是 Python cx_Oracle 驱动程序的新名称,如果你仍在使用 cx_Oracle,建议升级到最新版本的 oracledb。

oracledb 驱动程序是一个开源模块,使 Python 程序能够访问 Oracle 数据库。默认情况下,oracledb 使用 Thin 模式,不需要依赖 Oracle 客户端类库。

该模块目前支持 Python 3.7 到 3.12,可用于 Oracle 数据库 23ai, 19c, 12c 和 11gR2 等版本。

alt

oracledb 最新版本为 2.2.0,以支持 23ai 的如下特性:

  1. 支持 VECTOR 数据类型。
  2. 支持隐式连接池,DRCP (数据库驻留连接池) 和 PRCP (代理驻留连接池),通过新参数 pool_boundary 启用。
  3. 为从 OCI 云网络连接到 Oracle Autonomous Database Serverless (ADB-S) 的应用程序添加了对 TCP Fast Open 的支持,通过新的 use_tcp_fast_open 参数启用。
  4. 增加了 oracledb.JsonId 类,以表示存储在本机集合中的文档的 _id 属性中由 SODA 返回的 JSON ID 值。
  5. 增加了对 23ai JSON 功能的支持,并允许字段名称具有超过 255 个 UTF-8 编码字节。
  6. 增加了 SQL 域的属性 FetchInfo.domain_schemaFetchInfo.domain_nameFetchInfo.annotations 以及与要获取的列关联的注释。
alt

python-oracledb 安装

准备 Python 环境,这里使用的是 Python 3.9。

$ python --version
Python 3.9.18

然后,安装 pip 工具。

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py

使用 pip 安装 python-oracledb 包。

$ pip install oracledb
...
Requirement already satisfied: cryptography>=3.2.1 in /usr/lib64/python3.9/site-packages (from oracledb) (36.0.1)
Requirement already satisfied: cffi>=1.12 in /usr/lib64/python3.9/site-packages (from cryptography>=3.2.1->oracledb) (1.14.5)
Requirement already satisfied: pycparser in /usr/lib/python3.9/site-packages (from cffi>=1.12->cryptography>=3.2.1->oracledb) (2.20)
Requirement already satisfied: ply==3.11 in /usr/lib/python3.9/site-packages (from pycparser->cffi>=1.12->cryptography>=3.2.1->oracledb) (3.11)
Installing collected packages: oracledb
Successfully installed oracledb-2.2.0

到此, oracledb 已经安装完成,可以看到这里安装的是最新版本 2.2.0。

使用 oracledb 连接 23ai

下面举个栗子,演示如何使用 oracledb 连接到 Oracle 23ai 数据库。

代码基本流程如下:

  1. 引入 oracledb 包
  2. 创建独立连接
  3. 分别查看客户端和服务器端版本
  4. 创建测试表,其中一列的数据类型为向量
  5. 插入测试数据
  6. 查询测试表数据
import oracledb

conn = oracledb.connect(dsn="SHAWNYAN/1@127.1:1521/FREEPDB1", mode=oracledb.AUTH_MODE_SYSDBA)

print("Client version: ", oracledb.__version__)

if conn.is_healthy():
    print("Server version: ", conn.version)
else:
    print("Unusable connection. Please check.")

cursor = conn.cursor()

create_vector_table = """
CREATE TABLE IF NOT EXISTS orders 
(order_id INT, order_vector VECTOR)"""


cursor.execute(create_vector_table)
conn.commit()

insert_vector = "insert into orders values (1, '[1, 2]')"

cursor.execute(insert_vector)
conn.commit()

sql = "SELECT order_id, from_vector(order_vector) FROM ORDERS"

cursor.execute(sql)
result = cursor.fetchall()
for row in result:
    print(row)

cursor.close()
conn.close()
print("See u.")

输出结果:

Client version:  2.2.0
Server version:  23.4.0.24.5
(1'[1.0E+000,2.0E+000]')
See u.

小结

本文介绍了如何使用 python-oracle 连接 Oracle Database 23ai,并演示在代码中操作向量类型。

下一篇,将介绍两种连接池的用法。

往期回顾

-- END --

alt

↑关注“少安事务所”微信公众号,欢迎标星收藏,不错过精彩内容~

如果这篇文章为你带来了灵感或启发,就请帮忙点『赞』or『在看』or『转发』吧,感谢!(๑˃̵ᴗ˂̵)

本文由 mdnice 多平台发布

  • 13
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python Oracledb是一个用于在Python中连接和操作Oracle数据库的库和模块。它提供了许多功能和方法,使我们能够使用Python语言与Oracle数据库进行交互。 Python Oracledb具有以下有用的特点和功能: 1. 强大的连接和操作功能:Python Oracledb允许我们创建与Oracle数据库的连接,并执行SQL查询、插入、更新和删除等操作。我们可以使用连接池管理连接,以提高性能和效率。 2. 支持事务管理:Python Oracledb支持事务管理,我们可以使用commit和rollback方法来管理事务的提交和回滚,以确保数据的一致性和完整性。 3. 高性能和效率:Python Oracledb是使用C语言编写的,它与Oracle数据库的底层接口直接交互,因此具有很高的性能和效率。 4. 大数据量支持Python Oracledb可以有效地处理大数据量的操作,它能够高效地处理大量数据的读写,使我们能够处理大型数据库。 5. 兼容性:Python OracledbPython语言完全兼容,可以与其他Python库和模块无缝集成,例如pandas、numpy等。 总之,Python Oracledb是一个功能丰富、高效可靠的库,可以帮助我们在Python中连接和操作Oracle数据库,提供了强大的功能和性能,使我们能够轻松地进行数据库操作和管理。 ### 回答2: Python OracleDBPython编程语言中用于访问和操作Oracle数据库的一个模块。它提供了一组功能齐全的API,使开发人员可以轻松地连接到Oracle数据库,执行SQL查询和操作数据库表等操作。 Python OracleDB模块使用简单且易于学习。它提供了一种直观的方式来编写数据库应用程序代码,无论是简单的查询还是复杂的数据库操作。通过Python OracleDB,可以使用Python的强大编程功能和语法来与Oracle数据库进行交互,提高开发效率和代码质量。 Python OracleDB模块支持连接池,这使得在多线程和多进程应用程序中使用数据库连接更加安全和有效。连接池可以避免频繁的连接和断开连接操作,提供了一种高效地管理数据库连接的方法。 Python OracleDB还提供了一些高级功能,如批量插入和批量更新等。这些功能可以极大地提高处理大量数据的效率,减少与数据库的交互次数,从而提高应用程序的性能。 总而言之,Python OracleDBPython开发人员连接和操作Oracle数据库的一种方便、高效和强大的工具。它通过提供易于使用的API、连接池支持和高级功能,让开发人员可以更加轻松地与Oracle数据库进行交互,实现各种数据库应用程序的需求。 ### 回答3: Python Oracledb是一个用于连接和操作Oracle数据库的Python库。它提供了对Oracle数据库的完整访问和控制能力,使得开发人员可以使用Python编程语言轻松地与Oracle数据库进行交互。 Python Oracledb具有以下特点和优势: 1. 简单易用:Python Oracledb提供了简洁的API和友好的文档,使得使用该库的开发人员可以轻松地连接Oracle数据库,执行SQL语句,获取查询结果等操作。 2. 高效稳定:Python Oracledb使用Oracle客户端软件提供的原生访问接口,确保了与Oracle数据库之间的高效和稳定的连接。它采用预编译的SQL语句和绑定变量来优化数据库查询的性能。 3. 兼容性:Python Oracledb与不同版本的Oracle数据库完全兼容,同时支持Python的不同版本。无论是使用Python 2还是Python 3,都可以使用Python Oracledb来连接和操作Oracle数据库。 4. 多种数据类型支持Python Oracledb支持Oracle数据库中的各种数据类型,包括数值、日期时间、字符、二进制数据等,使得开发人员可以灵活地存储和操作这些数据类型。 5. 安全性:Python Oracledb提供了对Oracle数据库的数据加密和身份验证的支持,确保数据在传输和存储过程中的安全性。 总之,Python Oracledb是一个强大而易用的Python库,它为开发人员提供了连接和操作Oracle数据库的全面能力,使得使用Python进行数据库开发变得简单和高效。无论是进行数据分析、Web开发还是企业级应用开发,Python Oracledb都是一个值得选择和使用的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值