前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python使用cx_Oracle库连接oracle服务器

python使用cx_Oracle库连接oracle服务器

作者头像
菜鸟小白的学习分享
发布2020-07-14 18:09:31
3K0
发布2020-07-14 18:09:31
举报
文章被收录于专栏:菜鸟小白的学习分享

   使用python连接oracle数据库服务器需要三个软件的位数一致额版本配套(python版本、oracle数据库服务器版本和oracle客户端连接工具版本)

Oracle客户端工具

    使用python来操作oracle数据库,我们需要先下载一个oracle的客户端连接工具。因为前面我们安装的是一个oracle 12c的64位数据库,所以我们安装的oracle客户端也需要与之对应。我这边下载的是instantclient-basic-windows.x64-19.6.0.0.0dbru.zip,支持oracle 12c的版本。

    下载后将压缩包文件解压,将文件夹中的所有dll文件都复制到python36安装目录的Python36\Lib\site-packages目录下(如:C:\Program Files\Python36\Lib\site-packages)目录下。

cx_Oracle库安装

    这一次的库安装就不在建议大家直接使用命令“pip install cx_Oracle”进行安装了,因为这样安装的版本是最新的版本,大家可以直接在官网上去下载对应的版本,我们这边下载的是cx_Oracle-5.3-12c.win-amd64-py3.6-2.exe,其中12c代表支持的oracle服务器版本,win-amd64代表支持64位操作系统。

    下载之后使用管理员权限运行,直接默认安装

    这样我们就安装好了cx_Oracle库程序。

python连接oracle 12c

    先看代码然后我们再来解释吧

代码语言:javascript
复制
# -*- coding:utf-8 -*-
import cx_Oracle
db = cx_Oracle.connect('C##oracle', 'oracle', '192.168.106.100:1521/orcl')
cursor=db.cursor()
sql="SELECT COLUMN1, COLUMN2 FROM C##ORACLE.NEWTABLE"
cursor.execute(sql)
result = cursor.fetchall()
for i in result:
    print(result)
cursor.close();
db.close();
  • 首先我们需要导入cx_Oracle库
  • 通过connect命令进行连接,连接参数分别为用户名、用户密码、oracle数据库服务器IP:端口/实例名
  • 定义一个连接对象
  • 执行对应的SQL语句
  • 将返回的结果通过fetchall函数全部提取出来
  • 打印返回结果
  • 关闭连接对象
  • 关闭会话连接

    执行结果如下:

    其它的SQL语句执行方式也是一致的,只需要替换cursor.execute()函数中的SQL参数就好了。

过程中的报错处理

版本不对应

    当出现如下图所示的告警,表示我们安装的软件版本不匹配,只需要保证oracle客户端、oracle服务器和cx_Oracle版本匹配一致就好了

oracle客户端拷贝的文件不全

    下载了oracle客户端之后,我们需要将文件夹中的所有dll文件复制到python36安装目录的Python36\Lib\site-packages,若缺失文件的情况下会出现如下报错

拷贝的文件如下:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 菜鸟小白的学习分享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档