Oracle-操作【Python-cx_oracle】

一、cx_oracle

1 简介

通过Python扩展模块cx_Oracle访问Oracle数据库cx_Oracle通常使用 pip 安装Oracle 客户端库需要单独安装

2 特点

支持多个 Oracle 客户端和数据库版本执行 SQL 和 PL/SQL 语句广泛的 Oracle 数据类型支持,包括大型对象(CLOB 和 BLOB)和 SQL 对象的绑定连接管理,包括连接池Oracle 数据库高可用性功能支持 Python 3.6 及更高版本。旧版本的cx_Oracle可以与以前的Python版本一起使用。支持 Oracle Client 11.2、12、18、19 和 21。Oracle 的标准跨版本互操作性允许轻松升级和连接到不同的 Oracle 数据库版本。连接到 Oracle 数据库 9.2、10、11、12、18、19 或 21(取决于所使用的 Oracle 客户端版本)。SQL 和 PL/SQL 执行。基础 Oracle 客户端库具有显著的优化功能,包括压缩提取、预提取、客户端和服务器结果集缓存以及具有自动调整功能的语句缓存。广泛的 Oracle 数据类型支持,包括大型对象支持(CLOB 和 BLOB)。JSON 数据类型支持。阵列操作可实现高效的 INSERT 和 UPDATE。引用光标支持。支持可滚动光标。来回浏览查询结果。获取 PL/SQL 隐式结果。从 PL/SQL 轻松返回查询结果。事务管理。特权连接。外部身份验证。数据库启动和关闭。

运行实例

# query.pyimport cx_Oracle# Establish the database connection 建立数据库连接
# 连接本地数据库无需加 dsn
# 连接外部数据库时需要 dsn="数据库地址/实例名"(如199.166.5.456/orcl)
# 此处“/”时字符,不是“或”
connection = cx_Oracle.connect(user="hr", password=userpwd,dsn="dbhost.example.com/orclpdb1")# Obtain a cursor 获取游标
cursor = connection.cursor()# Data for binding 绑定数据
manager_id = 145
first_name = "Peter"# Execute the query 执行查询
sql = """SELECT first_name, last_nameFROM employeesWHERE manager_id = :mid AND first_name = :fn"""
cursor.execute(sql, mid=manager_id, fn=first_name)# Loop over the result set遍历结果集
for row in cursor:print(row)

二、连接Oracle数据库

1 连接方式

cx_Oracle使用搜索启发式方式动态加载 Oracle 客户端库。
仅加载找到的组库。
这些库可以位于 Oracle Instant Client 的安装中、完整的 Oracle Client 安装中,也可以位于 Oracle 数据库安装中(如果 Python 与数据库在同一台计算机上运行)。
Oracle Client 和 Oracle Database 的版本不必相同。

2 具体的连接操作

connection = cx_Oracle.connect(user="hr", password="hr",dsn="dbhost.example.com/orclpdb1")
#本地连接似乎需要dsn部分
#连接外部数据库时需要dsn部分:例dsn="192.168.3.110/orcl"(数据库地址和名称)

补充:cx_oracle中的常见错误及解决

1 数据库连接失败

cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 32-bit Oracle Client library
此处为找不到32位Oracle客户端一般是由于Python、cx_oracle库、Oracle客户端位数不相同造成的
# 在SQL中执行select * from v$version;
# 可用来查询Oracle客户端位数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/1707.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI智能客服机器人原来这么好用,企业再不使用就落伍了!

随着人工智能技术的不断成熟,AI智能客服机器人已经变得越来越智能,它们正逐渐成为企业提供客户服务的强大助手。企业若不开始部署这种高效的技术,可能会在竞争中失去先机。下面,让我们来看看AI智能客服机器人为何如此好用&#xf…

vue +antvX6 根据节点与线,动态设置节点坐标生成流程图

需求 vue2 + antvX6完成流程图,但只有节点与线,没有节点的坐标,需要根据节点的顺序显示流程图。 需求: 1.根据数据动态生成对应的节点与线; 2.节点不能重叠; 3.节点与线可拖拽; 4.因为线存在重叠可能,所有鼠标移入时线必须高亮显示(红色),鼠标移出复原; 5.要求有…

Spring-基于xml自动装配

版本 Spring Framework 6.0.9​ 1. 定义 Spring IoC容器在无需显式定义每个依赖关系的情况下,根据指定的策略,自动为指定的bean中所依赖的类类型或接口类型属性赋值。 2. 关键配置元素 BeanDefinitionParserDelegate类定义了autowire属性的属性值&…

绿联 安装transmission

绿联 安装transmission及中文UI 1、镜像 linuxserver/transmission:latest 2、安装 2.1、创建容器 按需配置权重。 2.2、基础设置 2.3、网络 桥接即可。 注:如果使用IPV6,请选择"host"模式。 注:如果使用IPV6,请选…

《亲密关系》一书摘要

1.人们常常能深切感受到影响自己行为的外部压力,因而对自己行为的解释容易做出外部归因。但他们注意不到同样的环境也会影响他人,从而在解释他人的行为时,常常归因于他们内部的原因,如性格。即便是你最亲密的伴侣也很少能真正理解…

Git禁止松散对象loose objects弹窗

打开仓库时,弹窗如图 This repository currently has approximately XXXX loose objects.解决办法:见How to skip “Loose Object” popup when running ‘git gui’ Git v1.7.9 或以上版本,执行git config --global gui.gcwarning false

【计算机毕业设计】面向学生成绩分析系统产品功能介绍——后附源码

🎉**欢迎来到琛哥的技术世界!**🎉 📘 博主小档案: 琛哥,一名来自世界500强的资深程序猿,毕业于国内知名985高校。 🔧 技术专长: 琛哥在深度学习任务中展现出卓越的能力&a…

NIO之ByteBuffer

NIO中的ByteBuffer是缓冲区,其中有几个比较重要的属性capacity,position和limit。 capacity: 其中,capacity是缓冲区的容量大小,在分配内存空间后不会改变。 limit: limit是限制位置,在读写模…

前端crypto-js, 文件加密,判断相同文件、图片(MD5,SHA256)

文章目录 前情提要应用场景实战解析最后前情提要 大家好,今天我们来接触一个库crypto-js 没错,上面是有道翻译的截图,为了我们得到的信息更权威,这个库是用来加密的,但介绍是说,已经停止维护,但并不影响我们在前端项目中的使用,所以学学也没有坏处 应用场景 判断图片…

亿发:新修订器械GSP重大变化,医疗器械GSP软件助力适应科学监管

随着医疗器械行业的快速发展和监管要求的提升,国家药监局近期发布了新修订的医疗器械GSP(Good Storage Practice)规范,旨在加强医疗器械流通环节的质量管理和监督,确保医疗器械的安全、有效和可追溯。这一重大变化为医…

万益蓝Wonderlab益生菌:吃雪糕的自由,我终于找回来了!

虽然现在不是夏天,但是我必须要来说一下!我不仅在夏天可以吃雪糕!冬天吃也完全没有问题! 夏天,对于很多人来说,是雪糕、冷饮和冰镇西瓜的代名词。但对于我,这简直就是个“禁区”。每次看着别人…

SpringBoot项目启动的时候直接退出了?

SpringBoot项目启动的时候直接退出了? 如下图: 在启动SpringBoot项目的时候仅仅用了1.209s,然后直接退出了,也没有出现启动的项目对应的服务器端口号?为什么会这样呢?因为既然有服务器端口号 那么肯定会有…

神经网络学习工具分享(一)

1.Roboflow 标注数据集,并自动转换为可直接训练的格式。 Roboflow: Give your software the power to see objects in images and video 2.Papers With Code 既可以看论文,也可以连接论文上面github上面的代码。 The latest in Machine Learning | …

【php开发工程师系统性教学】——Laravel框架(验证码)的配置和使用的保姆式教程

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

如何用python在树莓派实现舵机缓慢转动?(模块封装可适配接口)

1.简介 使舵机缓慢从160度转向5度,然后再缓慢转回160度,需要在set_servo_angle函数中添加一些逻辑来逐步改变角度,而不是直接设置为目标角度。可以通过在两个角度之间分步改变角度来实现这一点。 2.示例 代码中,添加了一个函数gr…

MySQL的事务相关的语句的使用

MySQL的事务相关的语句的使用 事务是数据库管理系统执行过程中的一个程序单位,由一个或多个数据库操作组成。MySQL作为一款流行的关系型数据库管理系统,支持事务处理,允许用户定义一系列的操作,这些操作要么完全执行,…

数仓建模—数仓架构发展史

数仓建模—数仓架构发展史 时代的变迁,生死的轮回,历史长河滔滔,没有什么是永恒的,只有变化才是不变的,技术亦是如此,当你选择互联网的那一刻,你就相当于乘坐了一个滚滚向前的时代列车,开往未知的方向,不论什么样的技术架构只有放在当前的时代背景下,才是有意义的,…

MySQl-8.3.0版本安装下载教程(超详细保姆级教程)

第一步,去百度找到MySQl官网 第二步,找到DOWNLOAD(下载) 第三步 第四步 第五步 第六步.选择倒数第2个 第七步 第八步然后根据步骤安装就好了

MultiCD工具:创建一个多引导Linux USB驱动器

众所周知,拥有一个可安装多个可用操作系统的 CD 或 USB 驱动器在各种情况下都非常有用。无论是为了快速测试或调试某些内容,还是只是重新安装笔记本电脑或 PC 的操作系统,这都可以为你节省大量时间。 在本文中,将介绍如何使用名为…

最新win11配置cuda以及cudnn补丁教程

1、首先使用指令 nvidia-smi 查看电脑支持的**最高cuda**版本,例如:本机 12.2 2、进入CUDA下载cuda安装包 https://developer.nvidia.com/cuda-toolkit-archive 2、点击上方绿色的链接,按照图中序号选择的即可,最后点击下载。 …