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获取豆瓣电影简介代码分享
Jan 16 Python
小结Python用fork来创建子进程注意事项
Jul 03 Python
python with statement 进行文件操作指南
Aug 22 Python
Python实现获取网站PR及百度权重
Jan 21 Python
Python 使用os.remove删除文件夹时报错的解决方法
Jan 13 Python
Django 中自定义 Admin 样式与功能的实现方法
Jul 04 Python
python可视化篇之流式数据监控的实现
Aug 07 Python
Python跑循环时内存泄露的解决方法
Jan 13 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
Jun 28 Python
Python lambda表达式原理及用法解析
Aug 18 Python
Scrapy 配置动态代理IP的实现
Sep 28 Python
Pytorch中使用ImageFolder读取数据集时忽略特定文件
Mar 23 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
ThinkPHP3.1.3版本新特性概述
2014/06/19 PHP
php准确计算复活节日期的方法
2015/04/18 PHP
ThinkPHP静态缓存简单配置和使用方法详解
2016/03/23 PHP
php获取用户真实IP和防刷机制的实例代码
2018/11/28 PHP
jQuery select控制插件
2009/08/17 Javascript
十分钟打造AutoComplete自动完成效果代码
2009/12/26 Javascript
JavaScript 原型学习总结
2010/10/29 Javascript
返回对象在当前级别中是第几个元素的实现代码
2011/01/20 Javascript
JavaScript之Getters和Setters 平台支持等详细介绍
2012/12/07 Javascript
浅析JavaScript中的变量复制、参数传递和作用域链
2016/01/13 Javascript
vue+element-ui集成随机验证码+用户名+密码的form表单验证功能
2018/08/05 Javascript
基于JavaScript实现每日签到打卡轨迹功能
2018/11/29 Javascript
webpack的tree shaking的实现方法
2019/09/18 Javascript
JS使用正则表达式实现常用的表单验证功能分析
2020/04/30 Javascript
vue.js实现h5机器人聊天(测试版)
2020/07/16 Javascript
python函数返回多个值的示例方法
2013/12/04 Python
python中sleep函数用法实例分析
2015/04/29 Python
Python数据类型学习笔记
2016/01/13 Python
VSCode下好用的Python插件及配置
2018/04/06 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
六行python代码的爱心曲线详解
2019/05/17 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
2019/06/03 Python
django 微信网页授权登陆的实现
2019/07/30 Python
Python面向对象程序设计之继承、多态原理与用法详解
2020/03/23 Python
了解一下python内建模块collections
2020/09/07 Python
利用CSS3参考手册和CSS3代码生成工具加速来学习网页制
2012/07/11 HTML / CSS
高清屏中使用Canvas绘图出现模糊的问题及解决方法
2019/06/03 HTML / CSS
手工制作的音乐盒:Music Box Attic
2019/09/05 全球购物
如何清空Session
2015/02/23 面试题
超市采购员岗位职责
2014/02/01 职场文书
数控技校生自我鉴定
2014/03/02 职场文书
绩效管理实施方案
2014/03/19 职场文书
2016年教师节慰问信
2015/12/01 职场文书
关于应聘教师的自荐信
2016/01/28 职场文书
Python函数式编程中itertools模块详解
2021/09/15 Python
Python+pyaudio实现音频控制示例详解
2022/07/23 Python