Python编程实战之Oracle数据库操作示例


Posted in Python onJune 21, 2017

本文实例讲述了Python编程实战之Oracle数据库操作。分享给大家供大家参考,具体如下:

1. 要想使Python可以操作Oracle数据库,首先需要安装cx_Oracle包,可以通过下面的地址来获取安装包

http://cx-oracle.sourceforge.net/

2. 另外还需要oracle的一些类库,此时需要在运行python的机器上安装Oracle Instant Client软件包,可以通过下面地址获得

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

找到符合自己平台的包,然后安装,这里我使用的是rpm包,所以使用以下命令安装

$ sudo rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.i386.rpm

装完毕后还需要设置一下环境变量,如下

$ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib/oracle/11.2/client/lib

3. 创建一个简单的python文件,测试安装是否成功

import cx_Oracle
conn = cx_Oracle.connect('fkong/fkong@172.17.23.129/orcl')
cursor = conn.cursor ()
cursor.execute ("select * from dual")
row = cursor.fetchone ()
print row[0]
cursor.close ()
conn.close ()

4. 下面看一个数据库建表和插入操作

import cx_Oracle
conn = cx_Oracle.connect('fkong/fkong@172.17.23.129/orcl')
cursor = conn.cursor ()
cursor.execute ("CREATE TABLE TEST(ID INT, COL1 VARCHAR(32), COL2 VARCHAR(32), COL3 VARCHAR(32))")
cursor.execute ("INSERT INTO TEST (ID, COL1, COL2, COL3)VALUES(1, 'a', 'b', 'c')")
cursor.execute ("INSERT INTO TEST (ID, COL1, COL2, COL3)VALUES(2, 'aa', 'bb', 'cc')")
cursor.execute ("INSERT INTO TEST (ID, COL1, COL2, COL3)VALUES(3, 'aaa', 'bbb', 'ccc')")
conn.commit()
cursor.close ()
conn.close ()

5. 下面再来看看查询,查询通常有两种方式:一种是使用cursor.fetchall()获取所有查询结果,然后再一行一行的迭代;另一种每次通过cursor.fetchone()获取一条记录,直到获取的结果为空为止。看一下下面的例子:

import cx_Oracle
conn = cx_Oracle.connect('fkong/fkong@172.17.23.129/orcl')
cursor = conn.cursor ()
cursor.execute ("SELECT * FROM TEST")
rows = cursor.fetchall()
for row in rows:
  print "%d, %s, %s, %s" % (row[0], row[1], row[2], row[3])
print "Number of rows returned: %d" % cursor.rowcount
cursor.execute ("SELECT * FROM TEST")
while (1):
  row = cursor.fetchone()
  if row == None:
    break
  print "%d, %s, %s, %s" % (row[0], row[1], row[2], row[3])
print "Number of rows returned: %d" % cursor.rowcount
cursor.close ()
conn.close ()

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

Python 相关文章推荐
python开发利器之ulipad的使用实践
Mar 16 Python
Python实现自定义顺序、排列写入数据到Excel的方法
Apr 23 Python
Python 单元测试(unittest)的使用小结
Nov 14 Python
PyQt+socket实现远程操作服务器的方法示例
Aug 22 Python
python定位xpath 节点位置的方法
Aug 27 Python
selenium+python实现自动登陆QQ邮箱并发送邮件功能
Dec 13 Python
基于django 的orm中非主键自增的实现方式
May 18 Python
Python提取视频中图片的示例(按帧、按秒)
Oct 22 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
Jan 12 Python
python 下载文件的几种方式分享
Apr 07 Python
Python人工智能之混合高斯模型运动目标检测详解分析
Nov 07 Python
Python集合set()使用的方法详解
Mar 18 Python
Python获取SQLite查询结果表列名的方法
Jun 21 #Python
基于hashlib模块--加密(详解)
Jun 21 #Python
详谈Python基础之内置函数和递归
Jun 21 #Python
浅谈python内置变量-reversed(seq)
Jun 21 #Python
python 简单的绘图工具turtle使用详解
Jun 21 #Python
利用python批量给云主机配置安全组的方法教程
Jun 21 #Python
python anaconda 安装 环境变量 升级 以及特殊库安装的方法
Jun 21 #Python
You might like
不错的一篇面向对象的PHP开发模式(简写版)
2007/03/15 PHP
php向js函数传参的几种方法
2014/08/10 PHP
php简单检测404页面的方法示例
2019/08/23 PHP
通过代码实例解析PHP session工作原理
2020/12/11 PHP
使两个iframe的高度与内容自适应,且相等
2006/11/20 Javascript
javascript之bind使用介绍
2011/10/09 Javascript
JS对象与JSON格式数据相互转换
2012/02/20 Javascript
jQuery之过滤元素操作小结
2013/11/30 Javascript
jQuery中click事件用法实例
2014/12/26 Javascript
基于jQuery实现点击最后一行实现行自增效果的表格
2016/01/12 Javascript
JS实现图片上传预览功能
2016/11/21 Javascript
React组件的三种写法总结
2017/01/12 Javascript
node.js学习之断言assert的使用示例
2017/09/28 Javascript
基于对象合并功能的实现示例
2017/10/10 Javascript
Vue中Axios从远程/后台读取数据
2019/01/21 Javascript
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
写一个Vue Popup组件
2019/02/25 Javascript
原生JavaScript实现的无缝滚动功能详解
2020/01/17 Javascript
vue 使用v-for进行循环的实例代码详解
2020/02/19 Javascript
Vue.js暴露方法给WebView的使用操作
2020/09/07 Javascript
vue 数据双向绑定的实现方法
2021/03/04 Vue.js
Python的垃圾回收机制深入分析
2014/07/16 Python
对Python3中的print函数以及与python2的对比分析
2018/05/02 Python
使用numba对Python运算加速的方法
2018/10/15 Python
python多进程间通信代码实例
2019/09/30 Python
Django中使用Json返回数据的实现方法
2020/06/03 Python
基于Python实现体育彩票选号器功能代码实例
2020/09/16 Python
英国最全面的橄榄球联盟门票网站:Live Rugby Tickets
2018/10/06 全球购物
最新大学职业规划书范文
2013/12/30 职场文书
关于青春的演讲稿800字
2014/08/22 职场文书
法人代表授权委托书范文
2014/09/10 职场文书
2014年保险公司工作总结
2014/11/22 职场文书
详解Laravel框架的依赖注入功能
2021/05/27 PHP
详解nginx进程锁的实现
2021/06/14 Servers
Pytorch中使用ImageFolder读取数据集时忽略特定文件
2022/03/23 Python
使用Python开发贪吃蛇游戏 SnakeGame
2022/04/30 Python