我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么实现Python连接Oracle

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么实现Python连接Oracle

本篇内容介绍了“怎么实现Python连接Oracle”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一:安装Python 3.6

环境设置

Linux:Centos 6.7

Python:Python 3.6 

DB:Oracle 19C 

新增oracle用户

名字可随便取,脚本都放该用户下

[root@jumplinux01 ~]# useradd oracle

[root@jumplinux01 ~]# passwd oracle

新建安装目录

[root@jumplinux01 ~]# su - oracle

[oracle@jumplinux01 ~]$ mkdir softwore

[oracle@jumplinux01 ~]$ cd softwore/

[oracle@jumplinux01 softwore]$ 

安装Python3.6

由于系统安装完成后Python的版本为2.6,需先升级至3.6

[oracle@jumplinux01 softwore]$ python

Python 2.6.6 (r266:84292, Jul 23 2015, 15:22:56) 

[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> 

下载安装文件并解压

[oracle@jumplinux01 softwore]$ wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz

[oracle@jumplinux01 softwore]$ ll -rth

total 22M

-rw-rw-r-- 1 oracle oracle 22M Mar 21  2017 Python-3.6.1.tgz

[oracle@jumplinux01 softwore]$ tar -zxvf Python-3.6.1.tgz 

[oracle@jumplinux01 softwore]$ cd Python-3.6.1

创建Python安装目录

[root@jumplinux01 ~]#mkdir /usr/local/python36

[root@jumplinux01 ~]# chown oracle.oracle /usr/local/python36 -R

[root@jumplinux01 ~]# su - oracle

[oracle@jumplinux01 ~]$ cd softwore/Python-3.6.1

[oracle@jumplinux01 Python-3.6.1]$ ./configure --prefix=/usr/local/python36

[oracle@jumplinux01 Python-3.6.1]$ make

[oracle@jumplinux01 Python-3.6.1]$ make install 

修改链接

[root@jumplinux01 ~]# mv /usr/bin/python /usr/bin/python_old

[root@jumplinux01 ~]# ln -s /usr/local/python36/bin/python3.6 /usr/bin/python

[root@jumplinux01 ~]# su - oracle

验证是否安装成功

[oracle@jumplinux01 ~]$ python

Python 3.6.1 (default, Mar 16 2020, 21:33:03) 

[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>> 

yum问题处理

升级完之后yum会无法使用 这时需要修改yum可执行文件文件

问题:

[root@jumplinux01 ~]# yum list

  File "/usr/bin/yum", line 30

    except KeyboardInterrupt, e:

                            ^

SyntaxError: invalid syntax

处理:

[root@jumplinux01 ~]# vim /usr/bin/yum 

#!/usr/bin/python2.6

[root@jumplinux01 ~]# yum list

Loaded plugins: fastestmirror

Determining fastest mirrors

 * base: mirrors.aliyun.com

 * extras: mirrors.aliyun.com

 * updates: mirrors.aliyun.com

...

二:cx_Oracle模块的安装

这节包含 oracle客户端的安装和cx_Oracle模块的安装两部分

环境设置

Linux系统为 Centos 6.7

Python环境为 Python 3.6

Oracle 模块:cx_Oracle

Oracle客户端:Oracle 12c Instant Client

1. 安装Oracle 12c Instant Client

由于这次我们使用Python连接Oracle,所以需要oracle客户端,这里我们使用Oracle 12c Instant Client

https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html

[root@jumplinux01 ~]# chown oracle.oracle /home/oracle/softwore -R

[root@jumplinux01 ~]# ll -rth /home/oracle/softwore/

total 73M

-rw-rw-r--  1 oracle oracle  22M Mar 21  2017 Python-3.6.1.tgz

drwxr-xr-x 18 oracle oracle 4.0K Mar 16 21:34 Python-3.6.1

-rw-r--r--  1 oracle oracle 593K Mar 16 22:15 oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm

-rw-r--r--  1 oracle oracle  51M Mar 16 22:15 oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm

1.1安装Oracle客户端(root用户)

[root@jumplinux01 softwore]# rpm -ivh oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm 

[root@jumplinux01 softwore]# rpm -ivh oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm 

1.2添加ORACLE_HOME用户环境变量(root用户)

[root@jumplinux01 softwore]# vi ~/.bash_profile 

export ORACLE_HOME=/usr/lib/oracle/12.2/client64

export LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib

[root@jumplinux01 softwore]# source ~/.bash_profile 

2.下载cx_Oracle模块

专门用于连接Oracle数据的一个模块

https://pypi.org/project/cx-Oracle/5.2.1/#downloads

[root@jumplinux01 softwore]# ll -rth cx_Oracle-5.2.1.tar.gz 

-rw-r--r-- 1 oracle oracle 111K Mar 16 22:23 cx_Oracle-5.2.1.tar.gz

3.安装cx_Oracle模块(root用户)

[oracle@jumplinux01 softwore]$ tar -zxvf cx_Oracle-5.2.1.tar.gz 

[oracle@jumplinux01 softwore]$ cd cx_Oracle-5.2.1

[oracle@jumplinux01 cx_Oracle-5.2.1]$ python setup.py build

[oracle@jumplinux01 cx_Oracle-5.2.1]$ python setup.py install

...

Installed /usr/local/python36/lib/python3.6/site-packages/cx_Oracle-5.2.1-py3.6-linux-x86_64.egg

Processing dependencies for cx-Oracle==5.2.1

Finished processing dependencies for cx-Oracle==5.2.1

验证安装

如import无错误则说明安装成功 

[oracle@jumplinux01 cx_Oracle-5.2.1]$ python

Python 3.6.1 (default, Mar 16 2020, 21:33:03) 

[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>> import cx_Oracle

>>> 

三:使用cx_Oracle连接Oracle(基础篇)

[oracle@jumplinux01 softwore]$ vi connectoracle.py 

#!/usr/bin/python

#coding=utf8

#导入cx_Oracle模块

import cx_Oracle

#创建到Oracle数据库的连接并赋给变量

db=cx_Oracle.connect('cjc/cjc@192.168.2.222:1521/cjcpdb01')

#创建游标并赋给变量cursor

cursor=db.cursor()

#执行Oracle SQL语句

cursor.execute('select sysdate from dual')

#获取执行结果并赋给变量data

#这里fetchone表示获取一行,fetchall为获取所有行

#fetchone返回的是一个字符串

#fetchall返回的是一个列表,哪怕结果只有一行

data=cursor.fetchone()

#打印结果

print ('Database time: %s ' %data)

#关闭数据库连接

cursor.close()

db.close()

运行结果:

错误:

[root@jumplinux01 ~]# su - oracle

[oracle@jumplinux01 ~]$ cd softwore/

[oracle@jumplinux01 softwore]$ python connectoracle.py 

Traceback (most recent call last):

  File "connectoracle.py", line 8, in <module>

    db=cx_Oracle.connect('cjc/cjc@192.168.2.222:1521/cjcpdb01')

cx_Oracle.DatabaseError: ORA-24454: client host name is not set

解决方案:添加hosts

[root@jumplinux01 ~]# cat /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.2.221 jumplinux01

192.168.2.222 cjcos

再次运行结果:

[oracle@jumplinux01 softwore]$ python connectoracle.py 

“怎么实现Python连接Oracle”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么实现Python连接Oracle

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么实现Python连接Oracle

本篇内容介绍了“怎么实现Python连接Oracle”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一:安装Python 3.6环境设置Lin
2023-06-02

oracle数据库怎么实现远程连接

要实现Oracle数据库的远程连接,需要进行以下步骤:确保Oracle数据库实例已启动并正在运行。配置Oracle数据库监听器,以便允许远程连接。可以通过编辑监听器配置文件(listener.ora)来配置监听器。在数据库服务器上创建一
oracle数据库怎么实现远程连接
2024-05-14

python怎么连接oracle数据库

使用Python连接Oracle数据库使用Python连接Oracle数据库需要安装cx_Oracle模块和Oracle客户机。步骤包括导入模块、创建连接、创建游标、执行查询、获取结果、处理结果和关闭连接。示例代码展示了连接数据库并执行查询的完整流程。提示包括确保连接信息正确,使用匹配的cx_Oracle版本,并在开发前查阅cx_Oracle文档。
python怎么连接oracle数据库
2024-04-13

python怎么连接oracle数据库

要连接Oracle数据库,首先需要安装Oracle客户端,并且安装cx_Oracle模块。然后可以使用以下Python代码连接Oracle数据库:import cx_Oracle# 连接数据库conn = cx_Oracle.conne
python怎么连接oracle数据库
2024-04-09

python连接redis指定库怎么实现

建立连接、使用管道与事务、发布/订阅、连接池与高级用法使用redis-py库建立与Redis指定库的连接。管道机制可将多个命令打包发送,提高性能。事务保证命令原子提交。Redis支持发布/订阅模型进行消息传递。连接池优化Redis连接性能。高级功能包括:各种数据结构、地理空间索引、管道化、事务、流等,为应用程序提供强大且高效的Redis解决方案。
python连接redis指定库怎么实现
2024-04-09

MySQL左连接、右连接、内连接与Hash连接怎么实现

这篇“MySQL左连接、右连接、内连接与Hash连接怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL左连接、
2022-11-30

Python中怎么实现数据库连接池

这篇文章将为大家详细讲解有关Python中怎么实现数据库连接池,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。示例:#-*-coding:utf-8-*- import threading,
2023-06-17

python 连接oracle(cx_O

使用python连接oracle数据库;1.安装python3.0;2.安装cx_Oracle模块;3.安装ORACLE_CLIENT ;(ORACLE_CLIENT和python位数保持一致;要么都安装32位要么都用64位)导入连接ora
2023-01-31

python连接oracle配置

环境:操作系统:win7 64位,CPU是inter的pc机Oracle服务端:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionOrac
2023-01-31

ADO.NET连接测试怎么实现

这篇文章主要介绍“ADO.NET连接测试怎么实现”,在日常操作中,相信很多人在ADO.NET连接测试怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ADO.NET连接测试怎么实现”的疑惑有所帮助!接下来
2023-06-17

Python怎么连接Mysql实现图书借阅系统

这篇“Python怎么连接Mysql实现图书借阅系统”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python怎么连接Mys
2023-06-29

Mysql怎么实现全外连接

本文小编为大家详细介绍“Mysql怎么实现全外连接”,内容详细,步骤清晰,细节处理妥当,希望这篇“Mysql怎么实现全外连接”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。MySql中多表查询只提供了内连接,左外连
2023-07-05

怎么用navicat连接oracle

连接 oracle 数据库使用 navicat:获取连接信息(主机名、端口、服务名、用户名、密码)。在 navicat 中新建 mysql 连接类型。输入连接信息,包括连接名称、主机名/ip 地址、端口、服务名、用户名、密码。保存连接。双击
怎么用navicat连接oracle
2024-04-06

怎么用sqlplus连接oracle

要使用SQL*Plus连接Oracle数据库,需要按照以下步骤操作:1. 打开命令行窗口(Windows用户可以使用CMD,Linux和Mac用户可以使用终端)。2. 输入以下命令以连接到数据库:```sqlplus username/pa
2023-10-09

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录