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多线程http下载实现示例
Dec 30 Python
Python计算一个给定时间点前一个月和后一个月第一天的方法
May 29 Python
详解Python中的正则表达式
Jul 08 Python
解决Shell执行python文件,传参空格引起的问题
Oct 30 Python
django使用haystack调用Elasticsearch实现索引搜索
Jul 24 Python
Python中模块(Module)和包(Package)的区别详解
Aug 07 Python
详解Python并发编程之创建多线程的几种方法
Aug 23 Python
Window版下在Jupyter中编写TensorFlow的环境搭建
Apr 10 Python
python如何求100以内的素数
May 27 Python
Python项目跨域问题解决方案
Jun 22 Python
详解python with 上下文管理器
Sep 02 Python
python 利用PyAutoGUI快速构建自动化操作脚本
May 31 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类分享
2014/02/07 PHP
thinkphp自带验证码全面解析
2016/09/18 PHP
解决javascript:window.close()在chrome,Firefox下失效的问题
2013/05/07 Javascript
原生javascript实现获取指定元素下所有后代元素的方法
2014/10/28 Javascript
requirejs + vue 项目搭建详解
2017/06/16 Javascript
JS倒计时实例_天时分秒
2017/08/22 Javascript
微信小程序loading组件显示载入动画用法示例【附源码下载】
2017/12/09 Javascript
浅析node.js的模块加载机制
2018/05/25 Javascript
浅谈KOA2 Restful方式路由初探
2019/03/14 Javascript
js打开word文档预览操作示例【不是下载】
2019/05/23 Javascript
[01:00:06]加油DOTA_EP01_网络版
2014/08/09 DOTA
简单介绍Python中利用生成器实现的并发编程
2015/05/04 Python
python监测当前联网状态并连接的实例
2018/12/18 Python
详解js文件通过python访问数据库方法
2019/03/03 Python
Django多数据库的实现过程详解
2019/08/01 Python
python多线程同步实例教程
2019/08/11 Python
浅析python redis的连接及相关操作
2019/11/07 Python
python已协程方式处理任务实现过程
2019/12/27 Python
Django Model层F,Q对象和聚合函数原理解析
2020/11/12 Python
详解css3中的伪类before和after常见用法
2020/11/17 HTML / CSS
Converse匡威法国官网:美国著名帆布鞋品牌
2018/12/05 全球购物
工厂厂长岗位职责
2013/11/08 职场文书
医院护士专业个人的求职信
2013/12/09 职场文书
大学生涯自我鉴定
2014/01/16 职场文书
民事诉讼授权委托书范文
2014/08/02 职场文书
纪念九一八事变演讲稿:牢记历史,捍卫主权
2014/09/14 职场文书
建设办主任四风问题整改思路和措施
2014/09/20 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
小学优秀教师先进事迹材料
2014/12/16 职场文书
幼儿园个人师德总结
2015/02/06 职场文书
营业员岗位职责范本
2015/04/14 职场文书
2015年社区重阳节活动总结
2015/07/30 职场文书
创业计划书之熟食店
2019/10/16 职场文书
Python一些基本的图像操作和处理总结
2021/06/23 Python
vue中利用mqtt服务端实现即时通讯的步骤记录
2021/07/01 Vue.js
SQLServer RANK() 排名函数的使用
2022/03/23 SQL Server