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实现合并字典的方法
Jul 07 Python
python中的随机函数random的用法示例
Jan 27 Python
python实现12306抢票及自动邮件发送提醒付款功能
Mar 08 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
Jun 14 Python
python梯度下降法的简单示例
Aug 31 Python
NumPy 数组使用大全
Apr 25 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
Jul 07 Python
python-tornado的接口用swagger进行包装的实例
Aug 29 Python
Series和DataFrame使用简单入门
Nov 13 Python
Python时间差中seconds和total_seconds的区别详解
Dec 26 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
Feb 14 Python
简单了解Python变量作用域正确使用方法
Jun 12 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 MySQL与分页效率
2008/06/04 PHP
php之curl设置超时实例
2014/11/03 PHP
DOM基础及php读取xml内容操作的方法
2015/01/23 PHP
Sample script that displays all of the users in a given SQL Server DB
2007/06/16 Javascript
JS调试必备的5个debug技巧
2014/03/07 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
2015/12/13 Javascript
JS前端笔试题分析
2016/12/19 Javascript
jQuery实现6位数字密码输入框
2016/12/29 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
基于Bootstrap的标签页组件及bootstrap-tab使用说明
2017/07/25 Javascript
JS回调函数深入理解
2019/10/16 Javascript
JavaScript实现简单验证码
2020/08/24 Javascript
vue 在单页面应用里使用二级套嵌路由
2020/12/19 Vue.js
python多线程用法实例详解
2015/01/15 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
widows下安装pycurl并利用pycurl请求https地址的方法
2018/10/15 Python
Python实现的删除重复文件或图片功能示例【去重】
2019/04/23 Python
Django框架反向解析操作详解
2019/11/28 Python
tensorflow之自定义神经网络层实例
2020/02/07 Python
Farfetch巴西官网:奢侈品牌时尚购物平台
2020/10/19 全球购物
介绍一下Java中的Class类
2015/04/10 面试题
四好少年事迹材料
2014/01/12 职场文书
信息与计算机科学职业规划范文:成为一艘有方向的船
2014/09/11 职场文书
群众路线教育实践活动个人对照检查材料思想汇报(社区班子)
2014/10/06 职场文书
2014村党支部书记党建工作汇报材料
2014/11/02 职场文书
在职人员跳槽求职信
2015/03/20 职场文书
2015年教师教学工作总结
2015/04/28 职场文书
怎样写观后感
2015/06/19 职场文书
投诉信回复范文
2015/07/03 职场文书
售房协议书范本
2015/08/11 职场文书
使用这 6个Vue加载动画库来减少我们网站的跳出率
2021/05/18 Vue.js
详解MySQL集群搭建
2021/05/26 MySQL
Django分页器的用法你都了解吗
2021/05/26 Python
MySQL5.7并行复制原理及实现
2021/06/03 MySQL
解决pycharm下载库时出现Failed to install package的问题
2021/09/04 Python
关于MySQL中explain工具的使用
2023/05/08 MySQL