python怎么连接oracle
发布时间 - 2026-01-09 00:00:00 点击率:次推荐优先使用 oracledb(Oracle 官方推荐、纯 Python实现、默认 Thin 模式无需客户端),安装 pip install oracledb,支持 Easy Connect 连接字符串、连接池、Thick 模式及常见问题处理。
Python 连接 Oracle 数据库,主流方式是使用 cx_Oracle(旧版)或其继任者 oracledb(Oracle 官方推荐、纯 Python 实现、无需 Oracle 客户端)。推荐优先使用 oracledb,尤其新项目。
安装 oracledb(推荐)
执行命令安装:
pip install oracledb
注意:oracledb 无需安装 Oracle Instant Client(除非使用 Thick 模式),默认运行在 Thin 模式,开箱即用。
基本连接与查询
使用用户名、密码、主机、端口和 SID 或服务名构造连接字符串。常见写法如下:
- 使用 Easy Connect 字符串(最简):
"username/password@host:port/service_name" - 使用完整 TNS 格式(适合复杂网络配置):
"username/password@//host:port/service_name"
示例代码:
import oracledb连接
conn = oracledb.connect( user="scott", password="tiger", dsn="localhost:1521/orclpdb1" # 或 "localhost:1521/ORCLPDB1" )
创建游标并查询
cursor = conn.cursor() cursor.execute("SELECT * FROM employees WHERE ROWNUM <= 5") for row in cursor: print(row)
cursor.close() conn.close()
处理连接参数与配置
生产环境建议用连接池提升性能,避免频繁创建/关闭连接:
- 调用
oracledb.create_pool()创建连接池 - 从池中获取连接:
pool.acquire(),用完归还:pool.release(conn) - 可设置最小/最大连接数、超时时间等参数
若需兼容旧系统或使用高级功能(如 LDAP、高级队列),可启用 Thick 模式(需先安装 Oracle Instant Client):
oracledb.init_oracle_client(lib_dir="/path/to/instantclient")
常见问题提醒
- 报错
DPY-3002(无法解析连接描述符):检查 service_name 是否正确,可用sqlplus验证 - 中文乱码:确保数据库字符集(如 AL32UTF8)与 Python 环境一致;oracledb 默认 UTF-8,一般无需额外设置
- 连接被拒绝:确认 Oracle 监听器运行中,防火墙放行端口(默认 1521),且数据库已 open
- 旧项目还在用 cx_Oracle?它已停止维护,建议逐步迁移到 oracledb(API 高度兼容,仅需替换 import 和少量初始化代码)
# oracle
# word
# python
# 防火墙
# 端口
# 中文乱码
# 常见问题
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
再谈Python中的字符串与字符编码(推荐)
轻松掌握MySQL函数中的last_insert_id()
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
如何获取上海专业网站定制建站电话?
,交易猫的商品怎么发布到网站上去?
BootStrap整体框架之基础布局组件
香港网站服务器数量如何影响SEO优化效果?
大同网页,大同瑞慈医院官网?
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
如何在万网ECS上快速搭建专属网站?
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
魔方云NAT建站如何实现端口转发?
Laravel观察者模式如何使用_Laravel Model Observer配置
网站制作企业,网站的banner和导航栏是指什么?
文字头像制作网站推荐软件,醒图能自动配文字吗?
Internet Explorer官网直接进入 IE浏览器在线体验版网址
开心动漫网站制作软件下载,十分开心动画为何停播?
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践
移动端脚本框架Hammer.js
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】
javascript中闭包概念与用法深入理解
Bootstrap整体框架之CSS12栅格系统
b2c电商网站制作流程,b2c水平综合的电商平台?
个人摄影网站制作流程,摄影爱好者都去什么网站?
js代码实现下拉菜单【推荐】
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面
北京网站制作的公司有哪些,北京白云观官方网站?
LinuxCD持续部署教程_自动发布与回滚机制
Laravel如何保护应用免受CSRF攻击?(原理和示例)
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
iOS中将个别页面强制横屏其他页面竖屏
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
如何实现javascript表单验证_正则表达式有哪些实用技巧
Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
Laravel怎么判断请求类型_Laravel Request isMethod用法
深圳网站制作的公司有哪些,dido官方网站?
微信推文制作网站有哪些,怎么做微信推文,急?
Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】
大连网站制作公司哪家好一点,大连买房网站哪个好?
如何在建站之星绑定自定义域名?
phpredis提高消息队列的实时性方法(推荐)
如何在Tomcat中配置并部署网站项目?
如何生成腾讯云建站专用兑换码?
晋江文学城电脑版官网 晋江文学城网页版直接进入


实现、默认 Thin 模式无需客户端),安装 pip install oracledb,支持 Easy Connect 连接字符串、连接池、Thick 模式及常见问题处理。