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 相关文章推荐
Flask数据库迁移简单介绍
Oct 24 Python
实用自动化运维Python脚本分享
Jun 04 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
Jul 09 Python
opencv resize图片为正方形尺寸的实现方法
Dec 26 Python
关于Tensorflow 模型持久化详解
Feb 12 Python
15行Python代码实现免费发送手机短信推送消息功能
Feb 27 Python
简单介绍一下pyinstaller打包以及安全性的实现
Jun 02 Python
Numpy中ndim、shape、dtype、astype的用法详解
Jun 14 Python
PyTorch的torch.cat用法
Jun 28 Python
Django def clean()函数对表单中的数据进行验证操作
Jul 09 Python
python实现批处理文件
Jul 28 Python
浅析Python模块之间的相互引用问题
Feb 26 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
风格模板初级不完全修改教程
2006/10/09 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
2013/06/20 PHP
分割GBK中文遭遇乱码的解决方法
2013/08/09 PHP
对PHP新手的一些建议(PHP学习经验总结)
2014/08/20 PHP
Zend Framework基本页面布局分析
2016/03/19 PHP
PHP二维数组去重算法
2016/12/17 PHP
PHP memcache在微信公众平台的应用方法示例
2017/09/13 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
2020/04/14 PHP
新鲜出炉的js tips提示效果
2011/04/03 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
jQuery弹簧插件编写基础之“又见弹窗”
2015/12/11 Javascript
JavaScript的Ext JS框架中的GridPanel组件使用指南
2016/05/21 Javascript
基于JS实现密码框(password)中显示文字提示功能代码
2016/05/27 Javascript
bootstrap学习笔记之初识bootstrap
2016/06/21 Javascript
jQuery异步提交表单的两种方式
2016/09/13 Javascript
解析预加载显示图片艺术
2016/12/05 Javascript
bootstrap警告框示例代码分享
2017/05/17 Javascript
详解处理bootstrap4不支持远程静态框问题
2018/07/20 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
layui表格分页 记录勾选的实例
2019/09/02 Javascript
微信小程序 (地址选择1)--选取搜索地点并显示效果
2019/12/17 Javascript
jquery实现上传文件进度条
2020/03/26 jQuery
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
python 给DataFrame增加index行名和columns列名的实现方法
2018/06/08 Python
python实现简单井字棋小游戏
2020/03/05 Python
美国高档百货Nordstrom的折扣店:Nordstrom Rack
2017/11/13 全球购物
Java模拟试题
2014/11/10 面试题
高中的自我鉴定
2013/12/16 职场文书
仓库保管员岗位职责
2013/12/20 职场文书
结婚周年感言
2014/02/24 职场文书
经济管理自荐书
2014/06/09 职场文书
本科毕业生应聘求职信
2014/07/06 职场文书
幼师中班个人总结
2015/02/12 职场文书
民事答辩状格式范文
2015/05/21 职场文书
vue css 相对路径导入问题级踩坑记录
2022/06/05 Vue.js