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的lambda语句声明匿名函数的用法
Jul 01 Python
Python读取图片为16进制表示简单代码
Jan 19 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
Jan 22 Python
Python File readlines() 使用方法
Mar 19 Python
CentOS 7 安装python3.7.1的方法及注意事项
Nov 01 Python
Python设计模式之迭代器模式原理与用法实例分析
Jan 10 Python
Python编程中类与类的关系详解
Aug 08 Python
python爬虫selenium和phantomJs使用方法解析
Aug 08 Python
python中类的输出或类的实例输出为这种形式的原因
Aug 12 Python
Django haystack实现全文搜索代码示例
Nov 28 Python
python爬虫中的url下载器用法详解
Nov 30 Python
python pygame 开发五子棋双人对弈
May 02 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中使用sockets:从新闻组中获取文章
2006/10/09 PHP
基于mysql的论坛(7)
2006/10/09 PHP
Thinkphp关闭缓存的方法
2015/06/26 PHP
php 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
jQuery的写法不同导致的兼容性问题的解决方法
2010/07/29 Javascript
Jquery进度条插件 Progress Bar小问题解决
2011/07/12 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
JavaScript检查某个function是否是原生代码的方法
2014/08/20 Javascript
jQuery焦点图切换简易插件制作过程全纪录
2014/08/27 Javascript
限制上传文件大小和格式的jQuery插件实例
2015/01/24 Javascript
javascript正则表达式中的replace方法详解
2015/04/20 Javascript
JQuery实现超链接鼠标提示效果的方法
2015/06/10 Javascript
简介JavaScript中的setDate()方法的使用
2015/06/11 Javascript
jquery+css3实现网页背景花瓣随机飘落特效
2015/08/17 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
2015/10/28 Javascript
jQuery EasyUI Accordion可伸缩面板组件使用详解
2017/02/28 Javascript
Bootstrap表单简单实现代码
2017/03/06 Javascript
基于vue v-for 循环复选框-默认勾选第一个的实现方法
2018/03/03 Javascript
微信小程序位置授权处理方法
2019/06/13 Javascript
js中let能否完全替代IIFE
2019/06/15 Javascript
Vue数据双向绑定原理实例解析
2020/05/15 Javascript
js绘制一条直线并旋转45度
2020/08/21 Javascript
python脚本实现xls(xlsx)转成csv
2016/04/10 Python
python中sys.argv函数精简概括
2018/07/08 Python
在python中利用GDAL对tif文件进行读写的方法
2018/11/29 Python
浅谈python常用程序算法
2019/03/22 Python
python Django 反向访问器的外键冲突解决
2020/05/20 Python
HTML5 WebSocket实现点对点聊天的示例代码
2018/01/31 HTML / CSS
历史系毕业生自荐信
2013/10/28 职场文书
2014七年级班主任工作总结
2014/12/05 职场文书
关于调整工作时间的通知
2015/04/24 职场文书
MySQL中B树索引和B+树索引的区别详解
2022/03/03 MySQL
十大最强水系宝可梦,最美宝可梦排第三,榜首大家最熟悉
2022/03/18 日漫
MySQL学习必备条件查询数据
2022/03/25 MySQL
Python进程池与进程锁之语法学习
2022/04/11 Python
关于MySQL中explain工具的使用
2023/05/08 MySQL