python连接oracle数据库实例


Posted in Python onOctober 17, 2014

本文实例讲述了python连接oracle数据库的方法,分享给大家供大家参考。具体步骤如下:

一、首先下载驱动:(cx_Oracle)

http://www.python.net/crew/atuining/cx_Oracle/
不过要注意一下版本,根据你的情况加以选择。

二、安装:

首先配置oracle_home环境变量
执行那个exe安装程序就可以了,它会copy一个cx_Oracle.pyd到Libsite-packages目录下。
如果是linux,执行

python setup.py build

python setup.py install

三、执行一段测试程序:

import cx_Oracle
con = cx_Oracle.connect( "xjtu_test", "37343734","xjtu.world")

cursor = con.cursor()

cursor.close()

con.close()

里边connect中的3个参数从左到右分别是:user, pass, TNS。
那个TNS可以用Oracle客户端工具中的Net Configuration Assistant来配置。

四、具体的cx_Oracle API可以参考:
http://www.python.net/crew/atuining/cx_Oracle/html/cx_Oracle.html

五、示例:

>>> import cx_Oracle

>>> conn=cx_Oracle.connect ('scott/tiger@oratest')

>>> curs=conn.cursor ()

>>> sql='select * from emp'

>>> rr=curs.execute (sql)

>>> row=curs.fetchone()

>>> row

(7369, 'SMITH', 'CLERK', 7902, datetime.datetime(1980, 12, 17, 0, 0), 800.0, None, 20)

>>> while row:

    (ID,NAME)=(row[0],row[1])

    row=curs.fetchone ()

    print ID,NAME
    

7369 SMITH

7499 ALLEN

7521 WARD

7566 JONES

7654 MARTIN

7698 BLAKE

7782 CLARK

7788 SCOTT

7839 KING

7844 TURNER

7876 ADAMS

7900 JAMES

7902 日常

7934 MILLER

如果使用windows平台,执行那段测试代码时你肯定遇到问题了,一般会有以下问题:

① import cx_Oracle 时报告找不到OCI.DLL:
到装了Oracle的机器上找一个,然后copy到Libsite-packages目录下就可以了。

② cx_Oracle.connect 时报告RuntimeError: Unable to acquire Oracle environment handle:
这个比较麻烦,按以下步骤来解决:(可能不需要所有的步骤,我没有确认,不过把以下步骤都执行了,确实问题就解决了)
首先,确认你是在控制台下边来执行这个python脚本的。而不是某些ide,例如:PyDev(它们似乎无法载入os的环境变量)。
其实,在本机安装Oracle(只安客户端工具就可以了)。
最后,添加以下环境变量:(我给出我的,换成你自己的路径就可以了)

ORACLE_HOME=D:OracleOra81

PATH=D:OracleOra81bin;

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

Python 相关文章推荐
Fiddler如何抓取手机APP数据包
Jan 22 Python
Python中.join()和os.path.join()两个函数的用法详解
Jun 11 Python
利用Python读取txt文档的方法讲解
Jun 23 Python
python寻找list中最大值、最小值并返回其所在位置的方法
Jun 27 Python
三步实现Django Paginator分页的方法
Jun 11 Python
python 判断linux进程,并杀死进程的实现方法
Jul 01 Python
Python利用for循环打印星号三角形的案例
Apr 12 Python
使用Python对Dicom文件进行读取与写入的实现
Apr 20 Python
Python中用xlwt制作表格实例讲解
Nov 05 Python
Python实战之用tkinter库做一个鼠标模拟点击器
Apr 27 Python
Django操作cookie的实现
May 26 Python
Python编程根据字典列表相同键的值进行合并
Oct 05 Python
Python 检查数组元素是否存在类似PHP isset()方法
Oct 14 #Python
跟老齐学Python之Import 模块
Oct 13 #Python
跟老齐学Python之类的细节
Oct 13 #Python
python修改注册表终止360进程实例
Oct 13 #Python
Python原始字符串(raw strings)用法实例
Oct 13 #Python
python中__call__方法示例分析
Oct 11 #Python
python多重继承实例
Oct 11 #Python
You might like
用PHP开发GUI
2006/10/09 PHP
php中使用explode查找某个字符是否存在的方法
2011/07/12 PHP
使用php发送有附件的电子邮件-(PHPMailer使用的实例分析)
2013/04/26 PHP
PHP中echo,print_r与var_dump区别分析
2014/09/29 PHP
PHP连接SQLServer2005的方法
2015/01/27 PHP
php实现删除空目录的方法
2015/03/16 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
2015/04/17 PHP
jquery中ajax调用json数据的使用说明
2011/03/17 Javascript
node.js中的path.isAbsolute方法使用说明
2014/12/08 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
2015/09/06 Javascript
jQuery+PHP实现可编辑表格字段内容并实时保存
2015/10/09 Javascript
javascript 取小数点后几位几种方法总结
2017/08/02 Javascript
js Date()日期函数浏览器兼容问题解决方法
2017/09/12 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
2019/05/27 Javascript
vue中通过使用$attrs实现组件之间的数据传递功能
2019/09/01 Javascript
解决vue bus.$emit触发第一次$on监听不到问题
2020/07/28 Javascript
JS实现简易贪吃蛇游戏
2020/08/24 Javascript
vue实现井字棋游戏
2020/09/29 Javascript
[06:24]DOTA2 2015国际邀请赛中国区预选赛第二日TOP10
2015/05/27 DOTA
Django小白教程之Django用户注册与登录
2016/04/22 Python
简单掌握Python中glob模块查找文件路径的用法
2016/07/05 Python
Python中交换两个元素的实现方法
2018/06/29 Python
python多任务之协程的使用详解
2019/08/26 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
2019/08/27 Python
Pandas将列表(List)转换为数据框(Dataframe)
2020/04/24 Python
python判断是空的实例分享
2020/07/06 Python
可能这些是你想要的H5软键盘兼容方案(小结)
2019/04/23 HTML / CSS
澳大利亚女士时装在线:Rockmans
2018/09/26 全球购物
建筑施工实习自我鉴定
2013/09/19 职场文书
物理教师自荐信范文
2013/12/28 职场文书
秋季红领巾广播稿
2014/01/27 职场文书
个人存款证明书
2014/10/18 职场文书
优秀教师推荐材料
2014/12/16 职场文书
新郎答谢词
2015/01/04 职场文书
2015年高中班级工作总结
2015/07/21 职场文书