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实现rest请求api示例
Apr 22 Python
Python实现从订阅源下载图片的方法
Mar 11 Python
Python使用Supervisor来管理进程的方法
May 28 Python
Python制作爬虫采集小说
Oct 25 Python
Python爬虫:通过关键字爬取百度图片
Feb 17 Python
Python中利用xpath解析HTML的方法
May 14 Python
解决在pycharm中显示额外的 figure 窗口问题
Jan 15 Python
python面向对象实现名片管理系统文件版
Apr 26 Python
对Django中的权限和分组管理实例讲解
Aug 16 Python
PyCharm2019安装教程及其使用(图文教程)
Sep 29 Python
python判断是空的实例分享
Jul 06 Python
使用Python快速打开一个百万行级别的超大Excel文件的方法
Mar 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 文件上传进度条的两种实现方法的代码
2007/11/25 PHP
PHP设置进度条的方法
2015/07/08 PHP
php如何实现只替换一次或N次
2015/10/29 PHP
PHP常用设计模式之委托设计模式
2016/02/13 PHP
PHP的PDO错误与错误处理
2019/01/27 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
JsEasy简介 JsEasy是什么?与下载
2007/03/07 Javascript
运用Windows XP附带的Msicuu.exe、Msizap.exe来彻底卸载顽固程序
2007/04/21 Javascript
理解Javascript_09_Function与Object
2010/10/16 Javascript
JS获取页面窗口大小的代码解读
2011/12/01 Javascript
基于jQuery的倒计时实现代码
2012/05/30 Javascript
jquery 追加tr和删除tr示例代码
2013/09/12 Javascript
jQuery自带的一些常用方法总结
2014/09/03 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
2015/03/02 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
深入理解jQuery事件绑定
2016/06/02 Javascript
javascript简单进制转换实现方法
2016/11/24 Javascript
Vue 仿百度搜索功能实现代码
2017/02/16 Javascript
node.js实现回调的方法示例
2017/03/01 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
layui中的switch开关实现方法
2019/09/03 Javascript
Python3实现zip分卷压缩过程解析
2019/10/09 Python
Python自动化完成tb喵币任务的操作方法
2019/10/30 Python
Python中join()函数多种操作代码实例
2020/01/13 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
HTML5+css3:3D旋转木马效果相册
2017/01/03 HTML / CSS
德国便宜的宠物店:Brekz.de
2020/10/23 全球购物
JS原生实现轮播图的几种方法
2021/03/23 Javascript
超市开业庆典策划方案
2014/05/14 职场文书
街道务虚会发言材料
2014/10/20 职场文书
2015年教师节贺卡寄语
2015/03/24 职场文书
交通事故协议书范本
2016/03/19 职场文书
HTML5中 rem适配方案与 viewport 适配问题详解
2021/04/27 HTML / CSS
Mysql 设置boolean类型的操作
2021/06/04 MySQL
利用JuiceFS使MySQL 备份验证性能提升 10 倍
2022/03/17 MySQL