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 相关文章推荐
Python脚本实现集群检测和管理功能
Mar 06 Python
老生常谈Python startswith()函数与endswith函数
Sep 08 Python
Python实现ping指定IP的示例
Jun 04 Python
PyTorch读取Cifar数据集并显示图片的实例讲解
Jul 27 Python
python添加模块搜索路径和包的导入方法
Jan 19 Python
在python里从协程返回一个值的示例
Feb 19 Python
python和c语言的主要区别总结
Jul 07 Python
python中break、continue 、exit() 、pass终止循环的区别详解
Jul 08 Python
Python实现中值滤波去噪方式
Dec 18 Python
python用TensorFlow做图像识别的实现
Apr 21 Python
Python Scrapy多页数据爬取实现过程解析
Jun 12 Python
python中关于数据类型的学习笔记
Jul 19 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
提问的智慧
2006/10/09 PHP
JS 网站性能优化笔记
2011/05/24 PHP
php实现utf-8和GB2312编码相互转换函数代码
2013/02/07 PHP
php实现的简易扫雷游戏实例
2015/07/09 PHP
php利用嵌套数组拼接与解析json的方法
2017/02/07 PHP
jquery获取复选框被选中的值
2014/04/10 Javascript
浅析JavaScript事件和方法
2015/02/28 Javascript
学习JavaScript编程语言的8张思维导图分享
2015/03/27 Javascript
javascript引用类型之时间Date和数组Array
2015/08/27 Javascript
JavaScript正则表达式实例详解
2016/10/16 Javascript
jstree创建无限分级树的方法【基于ajax动态创建子节点】
2016/10/25 Javascript
Boostrap栅格系统与自己额外定义的媒体查询的冲突问题
2017/02/19 Javascript
Angular使用$http.jsonp发送跨站请求的方法
2017/03/16 Javascript
使用vue与jquery实时监听用户输入状态的操作代码
2017/09/19 jQuery
JavaScript实现树的遍历算法示例【广度优先与深度优先】
2017/10/26 Javascript
AngularJS监听ng-repeat渲染完成的方法
2018/03/20 Javascript
Vue-router中hash模式与history模式的区别详解
2020/12/15 Vue.js
[02:51]DOTA2 2015国际邀请赛中国区预选赛第一日战报
2015/05/27 DOTA
Python入门之三角函数atan2()函数详解
2017/11/08 Python
Python实现matplotlib显示中文的方法详解
2018/02/06 Python
Python读取txt某几列绘图的方法
2018/10/14 Python
Python设计模式之组合模式原理与用法实例分析
2019/01/11 Python
Python3实现计算两个数组的交集算法示例
2019/04/03 Python
django drf框架自带的路由及最简化的视图
2019/09/10 Python
Python autoescape标签用法解析
2020/01/17 Python
canvas实现圆形进度条动画的示例代码
2017/12/26 HTML / CSS
生物专业个人自荐信范文
2013/11/29 职场文书
高等教育学自荐书范文
2014/02/10 职场文书
艺术设计专业求职自荐信
2014/05/19 职场文书
欢迎横幅标语
2014/06/17 职场文书
优秀高中学生评语
2014/12/30 职场文书
学习弘扬焦裕禄精神心得体会
2016/01/23 职场文书
励志语录:只有自己足够强大,才能不被别人践踏
2020/01/09 职场文书
SpringBoot整合JWT的入门指南
2021/06/29 Java/Android
使用refresh_token实现无感刷新页面
2022/04/26 Javascript
Java实现贪吃蛇游戏的示例代码
2022/09/23 Java/Android