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 11 Python
Python函数返回值实例分析
Jun 08 Python
Python实现包含min函数的栈
Apr 29 Python
浅谈python中get pass用法
Mar 19 Python
Python如何筛选序列中的元素的方法实现
Jul 15 Python
关于pytorch多GPU训练实例与性能对比分析
Aug 19 Python
python绘制随机网络图形示例
Nov 21 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
Jan 08 Python
pytorch模型预测结果与ndarray互转方式
Jan 15 Python
Python的历史与优缺点整理
May 26 Python
python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)
May 17 Python
Python 的演示平台支持 WSGI 接口的应用
Apr 20 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投票系统防刷票判断流程分析
2012/02/04 PHP
PHP面向对象法则
2012/02/23 PHP
PHP动态输出JavaScript代码实例
2015/02/12 PHP
微信access_token的获取开发示例
2015/04/16 PHP
php自定义分页类完整实例
2015/12/25 PHP
详解YII关联查询
2016/01/10 PHP
禁止JQuery中的load方法装载IE缓存中文件的方法
2009/09/11 Javascript
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
2010/01/15 Javascript
Pro JavaScript Techniques学习笔记
2010/12/28 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
2013/05/06 Javascript
javascript计算当月剩余天数(天数计算器)示例代码
2014/01/09 Javascript
JavaScript实现关键字高亮功能
2014/11/12 Javascript
JS中call/apply、arguments、undefined/null方法详解
2016/02/15 Javascript
在JavaScript中模拟类(class)及类的继承关系
2016/05/20 Javascript
JavaScript的this关键字的理解
2016/06/18 Javascript
react-router实现按需加载
2017/05/09 Javascript
Javascript实现信息滚动效果
2017/05/18 Javascript
javascript ES6 新增了let命令使用介绍
2017/07/07 Javascript
你应该了解的JavaScript Array.map()五种用途小结
2018/11/14 Javascript
基于node简单实现RSA加解密的方法步骤
2019/03/21 Javascript
Angular.JS读取数据库数据调用完整实例
2019/07/02 Javascript
JavaScript实现省市联动效果
2019/11/22 Javascript
python list 合并连接字符串的方法
2013/03/09 Python
Python使用代理抓取网站图片(多线程)
2014/03/14 Python
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
2015/06/28 Python
python使用筛选法计算小于给定数字的所有素数
2018/03/19 Python
django反向解析和正向解析的方式
2018/06/05 Python
如何通过雪花算法用Python实现一个简单的发号器
2019/07/03 Python
手把手教你将Flask应用封装成Docker服务的实现
2020/08/19 Python
25个CSS3动画按钮和菜单教程分享
2012/10/03 HTML / CSS
css3中transition属性详解
2014/09/02 HTML / CSS
localStorage、sessionStorage使用总结
2017/11/17 HTML / CSS
经典C++面试题一
2016/11/06 面试题
实习生岗位职责
2014/04/12 职场文书
任长霞观后感
2015/06/16 职场文书
生活委员竞选稿
2015/11/21 职场文书