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编写简单的定时器的方法
May 02 Python
一个基于flask的web应用诞生 flask和mysql相连(4)
Apr 11 Python
Python实现对象转换为xml的方法示例
Jun 08 Python
Python读取sqlite数据库文件的方法分析
Aug 07 Python
Django在win10下的安装并创建工程
Nov 20 Python
利用Python如何实现数据驱动的接口自动化测试
May 11 Python
用Python实现筛选文件脚本的方法
Oct 27 Python
在PYQT5中QscrollArea(滚动条)的使用方法
Jun 14 Python
flask实现验证码并验证功能
Dec 05 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
Mar 28 Python
详解python爬取弹幕与数据分析
Nov 14 Python
pytorch 如何使用float64训练
May 24 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数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
2011/10/31 PHP
Fine Uploader文件上传组件应用介绍
2013/01/06 PHP
linux环境apache多端口配置虚拟主机的方法深入介绍
2013/06/09 PHP
实现获取http内容的php函数分享
2014/02/16 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
jQuery 性能优化手册 推荐
2010/02/23 Javascript
利用div+jquery自定义滚动条样式的2种方法
2013/07/18 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
JS实现左右拖动改变内容显示区域大小的方法
2015/10/13 Javascript
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
json实现添加、遍历与删除属性的方法
2016/06/17 Javascript
Javascript下拉刷新的简单实现
2017/02/14 Javascript
常用的几个JQuery代码片段
2017/03/13 Javascript
使用classList来实现两个按钮样式的切换方法
2018/01/24 Javascript
Angular实现的进度条功能示例
2018/02/18 Javascript
解决在vue项目中,发版之后,背景图片报错,路径不对的问题
2018/03/06 Javascript
webpack4 处理SCSS的方法示例
2018/09/03 Javascript
JS实现斐波那契数列的五种方式(小结)
2020/09/09 Javascript
比较详细Python正则表达式操作指南(re使用)
2008/09/06 Python
简单谈谈Python中的几种常见的数据类型
2017/02/10 Python
Python新手们容易犯的几个错误总结
2017/04/01 Python
Python堆排序原理与实现方法详解
2018/05/11 Python
聊聊python里如何用Borg pattern实现的单例模式
2019/06/06 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
2019/06/21 Python
Django中提供的6种缓存方式详解
2019/08/05 Python
wxpython布局的实现方法
2019/11/01 Python
Python第三方包PrettyTable安装及用法解析
2020/07/08 Python
python高级特性简介
2020/08/13 Python
html5 canvas合成海报所遇问题及解决方案总结
2017/08/03 HTML / CSS
丝芙兰巴西官方商城:SEPHORA巴西
2016/10/31 全球购物
LORAC官网:美国彩妆品牌
2019/08/27 全球购物
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2014/01/19 面试题
自荐信不宜过于夸大
2013/11/06 职场文书
民族团结好少年事迹材料
2014/08/19 职场文书
2014年销售工作总结
2014/12/01 职场文书
学校会议通知范文
2015/04/15 职场文书