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中使用pyhook实现键盘监控的例子
Jul 18 Python
Python的另外几种语言实现
Jan 29 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
Feb 07 Python
python爬虫的数据库连接问题【推荐】
Jun 25 Python
python实现键盘控制鼠标移动
Nov 27 Python
Python对象中__del__方法起作用的条件详解
Nov 01 Python
python flask几分钟实现web服务的例子
Jul 26 Python
python爬虫selenium和phantomJs使用方法解析
Aug 08 Python
Python递归及尾递归优化操作实例分析
Feb 01 Python
python实现门限回归方式
Feb 29 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
Nov 25 Python
神经网络训练采用gpu设置的方式
Mar 03 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解析目录路径的3个函数总结
2014/11/18 PHP
PHP7正式版测试,性能惊艳!
2015/12/08 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
2020/12/01 PHP
jQuery侧边栏随窗口滚动实现方法
2013/03/04 Javascript
js模拟C#中List的简单实例
2014/03/06 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
2015/03/21 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
2015/05/25 Javascript
深入剖析JavaScript编程中的对象概念
2015/10/21 Javascript
Bootstrap开发实战之第一次接触Bootstrap
2016/06/02 Javascript
Ionic如何创建APP项目
2016/06/03 Javascript
bootstrap按钮插件(Button)使用方法解析
2017/01/13 Javascript
详解vue-router基本使用
2017/04/18 Javascript
Vue学习笔记进阶篇之过渡状态详解
2017/07/14 Javascript
JavaScript截屏功能的实现代码
2017/07/28 Javascript
JavaScript RegExp 对象用法详解
2019/09/24 Javascript
关于JS模块化的知识点分享
2019/10/16 Javascript
Javascript call及apply应用场景及实例
2020/08/26 Javascript
Python连接mysql数据库的正确姿势
2016/02/03 Python
Python中的字符串类型基本知识学习教程
2016/02/04 Python
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
2016/05/17 Python
OpenCV实现人脸识别
2017/04/07 Python
实例分析python3实现并发访问水平切分表
2018/09/29 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
Python3 log10()函数简单用法
2019/02/19 Python
python3转换code128条形码的方法
2019/04/17 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
2019/06/12 Python
OpenCV 轮廓检测的实现方法
2019/07/03 Python
Django单元测试中Fixtures用法详解
2020/02/25 Python
python 5个顶级异步框架推荐
2020/09/09 Python
canvas学习笔记之2d画布基础的实现
2019/02/21 HTML / CSS
香港最新科技与优质家居产品购物网站:J SELECT
2018/08/21 全球购物
罗兰·穆雷官网:Roland Mouret
2018/09/28 全球购物
Java面向对象面试题
2016/12/26 面试题
即兴演讲稿
2014/01/04 职场文书
2014年党员自我评议对照检查材料
2014/09/20 职场文书
2016春季幼儿园大班开学寄语
2015/12/03 职场文书