深入理解Python3.6连接Oracle数据库

  • 时间:
  • 2719人关注

这篇文章主要介绍了Python3.6连接Oracle数据库的方法,较为详细的分析了cx_Oracle模块安装及Python3.6使用cx_Oracle模块操作Oracle数据库的具体操作步骤与相关注意事项,需要的朋友可以参考下,另外这篇文章主要知识点是关于Python3.6、Oracle数据库、Python的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子资料:

本文实例讲述了Python3.6连接Oracle数据库的方法。分享给大家供大家参考,具体如下:

下载cx_Oracle模块模块:

https://pypi.python.org/pypi/cx_Oracle/5.2.1#downloads

这里下载的是源码进行安装

[root@oracle oracle]# tar xf cx_Oracle-5.2.1.tar.gz
[root@oracle oracle]# cd cx_Oracle-5.2.1
[root@oracle cx_Oracle-5.2.1]# python setup.py build
Traceback (most recent call last):
File "setup.py", line 170, in <module>
raise DistutilsSetupError("cannot locate an Oracle software " \
distutils.errors.DistutilsSetupError: cannot locate an Oracle software installation

报错解决办法:在root用户的.bash_profile文件中添加oracle_home的环境变量

export ORACLE_HOME=/u01/app/product/11.2.0/dbhome_1
PATH=${ORACLE_HOME}/bin:$PATH:$HOME/bin
[root@oracle cx_Oracle-5.2.1]# source /root/.bash_profile
[root@oracle cx_Oracle-5.2.1]# echo ${ORACLE_HOME}
/u01/app/product/11.2.0/dbhome_1

然后继续build:

[root@oracle cx_Oracle-5.2.1]# python setup.py build
running build
running build_ext

后面输出信息省略

[root@oracle cx_Oracle-5.2.1]# python setup.py install
running install
running bdist_egg

后面输出信息省略

按照完成之后,进行验证模块:

>>> import cx_Oracle
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: libclntsh.so.11.1: cannot open shared object file: No such file or directory

解决办法:在root用户的.bash_profile文件中添加LD_LIBRARY_PATH的环境变量

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH

[root@oracle cx_Oracle-5.2.1]# source /root/.bash_profile
[root@oracle cx_Oracle-5.2.1]# python

Python 3.6.1 (default, Jul 13 2017, 14:31:18)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cx_Oracle

#!/usr/bin/python
#coding=utf8
# import module
import cx_Oracle as oracle
# connect oracle database
db = oracle.connect('scott/redhat@192.168.223.138:1521/oracle.test')
# create cursor
cursor = db.cursor()
# execute sql
cursor.execute('select sysdate from dual')
# fetch data
data = cursor.fetchone()
print('Database time:%s' % data)
# close cursor and oracle
cursor.close()
db.close()

[oracle@oracle scripts]$ python connectoracle.py
Database time:2017-08-04 10:20:39

#!/usr/bin/python
#coding=utf8
import cx_Oracle as oracle
def oraclesql(cursor):
  fp = open(r'/home/oracle/scripts/tablespace.sql')
  fp_sql = fp.read()
  cursor.execute(fp_sql)
  data = cursor.fetchall()
  return data
if __name__ == '__main__':
  ipaddr = "192.168.223.138"
  username = "system"
  password = "redhat"
  oracle_port = "1521"
  oracle_service = "oracle.test"
  try:
   db = oracle.connect(username+"/"+password+"@"+ipaddr+":"+oracle_port+"/"+oracle_service)
  # 将异常捕捉,然后e就是抛异常的具体内容
  except Exception as e:
   print(e)
  else:
   cursor = db.cursor()
   data = oraclesql(cursor)
   for i in data:
     print(i)
   cursor.close()
   db.close()

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python常见数据库操作技巧汇总》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。


上一篇:Python3结合Dlib实现人脸识别和剪切的实例详解

下一篇:Django中redis的使用方法详解

相关内容

  • python3.6 tkinter屏保小程序实现方法

    这篇文章主要为大家详细介绍了python3.6 tkinter实现屏保小程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    11-02python3.6 tkinter屏保小程序

    阅读更多
  • 介绍python3.6根据m3u8下载mp4视频

    这篇文章主要为大家详细介绍了python3.6根据m3u8下载mp4视频,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    03-06python3.6根据m3u8下载mp4视频

    阅读更多
  • 深入理解mysql数据库和oracle数据库之间互相导入备份

    今天小编就为大家分享一篇关于mysql数据库和oracle数据库之间互相导入备份,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    03-21mysql数据库和oracle数据库之间互相导入备份

    阅读更多
  • mysql迁移至Oracle数据库的实操方法

    这篇文章主要为大家详细介绍了mysql数据库迁移至Oracle数据库的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    11-03mysql数据库迁移至Oracle数据库

    阅读更多
  • 怎样解决python3.6数独问题

    这篇文章主要为大家详细介绍了python3.6数独问题的解决,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    01-10python3.6数独问题的解决

    阅读更多
  • 机器学习:使用OpenCV和Python进行智能图像处理

    机器学习:使用OpenCV和Python进行智能图像处理

    OpenCV是1个综合性了經典和优秀计算机视觉、机器学习算法的开源系统库。根据与PythonAnaconda版本号融合,我也能够 获得你所必须的全部开源系统测算库。 这书最先详细介绍归类和重归等统计分

    大小:11.4 MB人工智能

    点击下载
  • 利用Python进行数据分析(第2版)

    利用Python进行数据分析(第2版)

    本书涵盖大量具体的实践建议,以及大量综合应用方法,教大家如何利用各种Python库高效地解决各式各样的数据分析问题,这里提供利用Python进行数据分析英文原版下载,附件集合了第二版英文原文、第二版的笔记精要、以及第二版原书的代码

    大小:91.7 MBPython

    点击下载
  • Python爬虫开发 从入门到实战

    Python爬虫开发 从入门到实战

    1.应用场景Python3.X解读,从新手入门到实战演练,全方位解读Python网络爬虫。 2.全书重难点附送微课解读,书网结合互动学习。 3.实例丰富多彩,高度重视实践活动,主要塑造用户的具体应用工

    大小:12.33 MBPython爬虫

    点击下载
  • Selenium 2自动化测试实战:基于Python语言

    Selenium 2自动化测试实战:基于Python语言

    大小:44 MBSelenium

    点击下载
  • 零基础学Python

    零基础学Python

    本书是针对零基础编程学习者研发的Python自学入门教程,详细地介绍了使用 IDLE 及 Python 框架进行程序管理的知识和技术,手把手教,快速摆脱小白窘境,带你开启编程大门

    大小:314 MBpython编程

    点击下载
  • Python与数据挖掘

    Python与数据挖掘

    本书主要分为两大部分,基础篇和建模应用篇。基础篇介绍了有关Python开发环境的搭建、Python基础入门、函数、面向对象编程、实用模块和图表绘制等基础知识。建模应用篇主要介绍了目前在

    大小:20.1 MBPython

    点击下载
  • Python数据分析与挖掘实战

    Python数据分析与挖掘实战

    10余名大数据挖掘行业杰出权威专家和科技人员,10多年大数据分析资询与执行工作经验结晶体。从大数据挖掘的运用来看,以电力工程、航空公司、诊疗、互联网技术、生产加工及其公共文化

    大小:46.8 MBPython

    点击下载

学习笔记