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 等版本。
oracledb 最新版本为 2.2.0,以支持 23ai 的如下特性:
- 支持 VECTOR 数据类型。
- 支持隐式连接池,DRCP (数据库驻留连接池) 和 PRCP (代理驻留连接池),通过新参数
pool_boundary
启用。 - 为从 OCI 云网络连接到 Oracle Autonomous Database Serverless (ADB-S) 的应用程序添加了对 TCP Fast Open 的支持,通过新的
use_tcp_fast_open
参数启用。 - 增加了 oracledb.JsonId 类,以表示存储在本机集合中的文档的
_id
属性中由 SODA 返回的 JSON ID 值。 - 增加了对 23ai JSON 功能的支持,并允许字段名称具有超过 255 个 UTF-8 编码字节。
- 增加了 SQL 域的属性
FetchInfo.domain_schema
、FetchInfo.domain_name
和FetchInfo.annotations
以及与要获取的列关联的注释。
python-oracledb 安装
准备 Python 环境,这里使用的是 Python 3.9。
1 | python --version |
然后,安装 pip 工具。
1 | curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py |
使用 pip 安装 python-oracledb 包。
1 | pip install oracledb |
到此, oracledb 已经安装完成,可以看到这里安装的是最新版本 2.2.0。
使用 oracledb 连接 23ai
下面举个栗子,演示如何使用 oracledb 连接到 Oracle 23ai 数据库。
代码基本流程如下:
- 引入 oracledb 包
- 创建独立连接
- 分别查看客户端和服务器端版本
- 创建测试表,其中一列的数据类型为向量
- 插入测试数据
- 查询测试表数据
1 | import oracledb |
输出结果:
1 | Client version: 2.2.0 |
小结
本文介绍了如何使用 python-oracle 连接 Oracle Database 23ai,并演示在代码中操作向量类型。
下一篇,将介绍两种连接池的用法。
往期回顾
– END. –
如果这篇文章为你带来了灵感或启发,就请帮忙点『赞』or『在看』or『转发』吧,感谢!(๑˃̵ᴗ˂̵)
- Title: python-oracledb 已率先支持 Oracle 23ai
- Author: ShawnYan
- Created at: 2024-05-08 23:00:00
- Updated at: 2024-05-08 23:00:00
- Link: https://shawnyan.cn/2024/oracle/oracle-23ai-with-python-oracledb-intro/
- License: This work is licensed under CC BY-NC-SA 4.0.
推荐阅读
if (hexo-config('comment.enable') == true && hexo-config('comment.system') != "") {
if (hexo-config('comment.system') == "waline") {
@require "./waline.styl"
} else if (hexo-config('comment.system') == "gitalk") {
@require "./gitalk.styl"
} else if (hexo-config('comment.system') == "twikoo") {
@require "./twikoo.styl"
}
}
.comments-container
display inline-block
margin-top $spacing-unit
width 100%
#comment-anchor
width 100%
height 10px
.comment-area-title
width 100%
margin 10px 0
font-size 1.38rem
color var(--default-text-color)
font-family 'Consolas', '宋体', sans-serif
font-weight bold
i
color var(--default-text-color)
+redefine-tablet()
margin 5px 0
font-size 1.2rem