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演示数型数据结构的教程
Apr 03 Python
一篇文章入门Python生态系统(Python新手入门指导)
Dec 11 Python
python类中super()和__init__()的区别
Oct 18 Python
python 将字符串转换成字典dict的各种方式总结
Mar 23 Python
python3正则提取字符串里的中文实例
Jan 31 Python
django基础学习之send_mail功能
Aug 07 Python
python实现UDP协议下的文件传输
Mar 20 Python
解决flask接口返回的内容中文乱码的问题
Apr 03 Python
使用matlab 判断两个矩阵是否相等的实例
May 11 Python
python在一个范围内取随机数的简单实例
Aug 16 Python
图解Python中深浅copy(通俗易懂)
Sep 03 Python
Python基础详解之邮件处理
Apr 28 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
php错误、异常处理机制(补充)
2012/05/07 PHP
PHP更安全的密码加密机制Bcrypt详解
2017/06/18 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
5分钟理解JavaScript中this用法分享
2013/11/09 Javascript
js实现编辑div节点名称的方法
2014/12/17 Javascript
jQuery给多个不同元素添加class样式的方法
2015/03/26 Javascript
理解javascript中的严格模式
2016/02/01 Javascript
JavaScript代码性能优化总结(推荐)
2016/05/16 Javascript
超全面的javascript中变量命名规则
2017/02/09 Javascript
bootstrap轮播图示例代码分享
2017/05/17 Javascript
JavaScript屏蔽Backspace键的实现代码
2017/11/02 Javascript
js实现二级菜单点击显示当前内容效果
2018/04/28 Javascript
js实现按钮开关单机下拉菜单效果
2018/11/22 Javascript
JavaScript实现简单轮播图效果
2018/12/01 Javascript
mpvue实现微信小程序快递单号查询代码
2020/04/03 Javascript
利用numpy和pandas处理csv文件中的时间方法
2018/04/19 Python
python实现按长宽比缩放图片
2018/06/07 Python
Python读写zip压缩文件的方法
2018/08/29 Python
想学python 这5本书籍你必看!
2018/12/11 Python
基于python解线性矩阵方程(numpy中的matrix类)
2019/10/21 Python
django中间键重定向实例方法
2019/11/10 Python
Jupyter notebook 远程配置及SSL加密教程
2020/04/14 Python
aws 通过boto3 python脚本打pach的实现方法
2020/05/10 Python
Python虚拟环境的创建和包下载过程分析
2020/06/19 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
2020/10/12 Python
numba提升python运行速度的实例方法
2021/01/25 Python
经贸日语专业个人求职信范文
2013/12/28 职场文书
结婚典礼证婚词
2014/01/08 职场文书
优秀班集体申报材料
2014/12/25 职场文书
2015年教师教学工作总结
2015/04/28 职场文书
刑事辩护词范文
2015/05/21 职场文书
结婚十年感言
2015/07/31 职场文书
先进个人事迹材料(2016推荐版)
2016/03/01 职场文书
聊聊golang中多个defer的执行顺序
2021/05/08 Golang
Python打包为exe详细教程
2021/05/18 Python