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

Python3.6连接Oracle数据库的方法详解

本文实例讲述了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

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 "", line 1, in

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程序设计有所帮助。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

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

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

相关文章

rfid阅读器的主要任务_RFID阅读器(读写器)的应用领域及其如何使用?

RFID阅读器(读写器)的应用领域及其如何使用?来源:本站 | 作者:admin | 发表于:2018-05-25 | 浏览次数:2181首先来了解一下RFID系统的构成:①电子标签,由芯片和标签天线组成,通过电感偶合或电磁…

计算机网络走向系统化 科学化,第六章计算机网络与INTERNET 应用习题

第六章计算机网络与Internet 应用一.是非题1.按覆盖地理范围的大小,可以吧计算机网络分为广域网,城域网。A 、对B、错2组建一局域网时,网卡不是必不可少的网络通信硬件。A、对B、错3.通信和资源共享是计算机网络最基本和最重要的特…

847方波放大电路_分析运放7大经典电路,有图有真相,详解每个电路原理!

运放的基本分析方法:虚断,虚短。对于不熟悉的运放应用电路,就使用该基本分析方法。运放是用途广泛的器件,接入适当的反馈网络,可用作精密的交流和直流放大器、有源滤波器、振荡器及电压比较器。1,运放在有源…

python实现什么功能_Python 实现WC功能

项目要求 基本要求 -c 统计文件字符数 (实现) -w 统计文件词数 (实现) -l 统计文件行数(实现) 扩展功能 -s 递归处理目录下符合条件得文件(实现) -a 返回文件代码行 / 空行 / 注释行(实现&#…

家用计算机来源,美计算机专家称BBS才是博客真正起源

美国计算机科学家莱斯恩斯特(Les Earnest)近日在接受国外媒体采访时表示,早在互联网面世之前,博客的原型就已经出现。恩斯特曾经在斯坦福大学计算机科学系担任高级研究科学家,目前已经退休。上世纪70年代初,他发明了计算机程序“f…

websocket底层处理粘包_Socket解决粘包问题1

粘包是指发送端发送的包速度过快,到接收端那边多包并成一个包的现象,比如发送端连续10次发送1个字符a,因为发送的速度很快,接收端可能一次就收到了10个字符aaaaaaaaaa,这就是接收端的粘包。可能我们在平时练习时没觉的…

python数据处理常用函数_Python大数据处理模块Pandas

Pandas使用一个二维的数据结构DataFrame来表示表格式的数据,相比较于Numpy,Pandas可以存储混合的数据结构,同时使用NaN来表示缺失的数据,而不用像Numpy一样要手工处理缺失的数据,并且Pandas使用轴标签来表示行和列 1、…

计算机学院校友论坛,西工大计算机学院北京校友论坛成立并举办第一次活动

2021年5月16日,西北工业大学计算机学院北京校友论坛成立会议暨第一次活动在北京召开,在京计算机学院院友齐聚一堂共同研讨计算机领域新技术、新发展,共叙同窗情,共谋新未来。西北工业大学校友总会办公室副主任刘江、计算机学院院长…

python爬虫有学c的必要吗_可以一边学python爬虫一边学c语言吗?

数据结2113构和算法并不是一门语言,你可以说有了Python 不用5261学C或者4102C了,但是不能说不需要学数据结构了,因为它是所有语1653言的基础。看你学Python的用途,如果你学Python并不深入,或者用来日常的办公、写个小爬…

python每个字符后添加空格_python实现指定字符串补全空格的方法

有什么方法可以指定字符串长度,不够的自动补空格char定义的是一个半角字符。 当人心变成市场,当市场变成战场,战场埋葬多少理想。char[]定义的是一个不定长的数组,实际上是指针,用前要初始化。不过某些编程环境可能会根…

邢台职业技术学院计算机系宿舍,邢台职业技术学院宿舍条件怎么样 男生女生宿舍图片...

大学马上就要开学了,邢台职业技术学院宿舍条件怎么样,有没有独立卫浴和空调,宿舍环境如何,想必是邢台职业技术学院大一新生最想知道的。小编整理了《邢台职业技术学院宿舍条件怎么样男生女生宿舍图片》一文,供大一新生…

c位边上还有什么位_c位是什么意思?C位说法的由来是什么?c位旁边二个位置叫什么?...

今天我们要讲的词是——c位。这个词想必大家一定耳熟能详,哪怕不知道具体的含义,也多多少少听过身边的人说上那么几句。特别是在追星族或者是微博上,总能看到“c位”“c位出道”这一类的词语。所以说,c位到底是什么意思呢?C位当中…

常用计算机 启动bios,详解各种电脑开机怎么进入bios设置

开机怎么进入bios呢?电脑品牌上百种,每种品牌又有各种类型,BIOS的类型成百上千,bios设置方法也不计其数。BIOS是整个系统中最神密最难掌握的,开机怎么进入bios?bios设置方法真的是一件伤脑筋的事。针对以上的问题,小…

python测开面试题_python十道经典面试题,测试你的python功底!

来源:python学习专栏 第一题,对象的类属性指向类对象class A(): def show(self): print( A_show ) class B(): def show(self): print( B_show ) obj B() obj.show() #这样我们能够正常调用 #那么我们能不能 #obj.show() #我们想调用A中的show 我们看一下…

国服服务器_外服玩家热议LOL国服倒计时插件:说好的公平竞技呢?

对于很多国服的英雄联盟玩家来说,自从多年前各种盒子辅助软件出现之后,玩家就越来越依赖这些辅助工作所提供的便捷,虽说在过去几年间官方已经对这些功能尽量进行了简化以及遏制,但比如打野计时器、水晶计时、眼位监视等等至今仍然…

国外计算机专业入门语言,【转自知乎】给想要报考计算机专业学生的一些建议...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼在知乎上问同类的问题较多,在学习上有困惑的同学好像还不少,我就花点时间写一下自己的看法,供在计算机领域起步的同学参考。欢迎业界高人补充和指正。1.本科应该比专科、职业学院要多一些人文类课…

python编辑elif显示错误_Python运行的17个时新手常见错误小结

1)忘记在 if , elif , else , for , while , class ,def 声明末尾添加 :(导致 “SyntaxError :invalid syntax”) 该错误将发生在类似如下代码中: if spam 42 print(Hello!) 2)使用 而不是 (导…

int转unsigned int_谢劲课题组在基于锰催化的转金属化基元反应取得系列进展

本文来自微信公众号:X-MOLNews用廉价的过渡金属催化剂替代贵金属催化剂是解决未来自然资源问题紧缺的一个很好选择。锰是地壳中含量排第三位的过渡金属,价格便宜,环境危害小。但由于其较低的催化活性,锰催化参与的许多金属有机化学…

python的作者为什么要创造python_为什么要学习Python?老男孩Python开发

在众多人的脑海中,Python无非就是一门编程语言而已,并没有什么特色,但是提及学习编程大部分人都会推荐Python,为什么?今天老男孩教育就给你说说学习Python的四大理由吧。首先先来了解一下什么是Python?Python是一个高层次的结合…

东电计算机考研大概分数,2019年各学院硕士研究生拟录取名单公示

2019年电气工程学院拟录取名单.doc 540.0 KB 2019-04-09 09:40 -a--2019年化学工程学院拟录取名单.doc 169.5 KB 2019-04-09 09:17 -a--2019年机械工程学院拟录取名单.doc 63.0 KB 2019-04-05 16:57 -a--2019年计算机工程学院拟录取名单.doc 165…