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中from module import * 的一个坑
Jul 20 Python
介绍Python中几个常用的类方法
Apr 08 Python
Python中常用操作字符串的函数与方法总结
Feb 04 Python
python字符串的常用操作方法小结
May 21 Python
Python使用combinations实现排列组合的方法
Nov 13 Python
Python中的random.uniform()函数教程与实例解析
Mar 02 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
May 31 Python
TensorFlow基本的常量、变量和运算操作详解
Feb 03 Python
TensorFlow MNIST手写数据集的实现方法
Feb 05 Python
TensorFlow加载模型时出错的解决方式
Feb 06 Python
python导入库的具体方法
Jun 18 Python
Python爬虫之爬取淘女郎照片示例详解
Jul 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
老机欣赏|中国60年代精品收音机
2021/03/02 无线电
php 来访国内外IP判断代码并实现页面跳转
2009/12/18 PHP
PHP持久连接mysql_pconnect()函数使用介绍
2012/02/05 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
Javascript实现的鼠标经过时播放声音
2010/05/18 Javascript
jquery中通过过滤器获取表单元素的实现代码
2011/07/05 Javascript
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
2013/07/04 Javascript
用原生JS获取CLASS对象(很简单实用)
2014/10/15 Javascript
jquery实现鼠标拖拽滑动效果来选择数字的方法
2015/05/04 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
快速使用Bootstrap搭建传送带
2016/05/06 Javascript
聊一聊Vue.js过渡效果
2016/09/07 Javascript
基于 webpack2 实现的多入口项目脚手架详解
2017/06/26 Javascript
Vuex利用state保存新闻数据实例
2017/06/28 Javascript
vue多页面开发和打包正确处理方法
2018/04/20 Javascript
详解js创建对象的几种方法及继承
2019/04/12 Javascript
关于在LayUI中使用AJAX提交巨坑记录
2019/10/25 Javascript
element日历calendar组件上月、今天、下月、日历块点击事件及模板源码
2020/07/27 Javascript
[46:28]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
Python中利用sorted()函数排序的简单教程
2015/04/27 Python
tensorflow 获取模型所有参数总和数量的方法
2018/06/14 Python
24式加速你的Python(小结)
2019/06/13 Python
python opencv根据颜色进行目标检测的方法示例
2020/01/15 Python
python 异步async库的使用说明
2020/05/04 Python
Python3爬虫发送请求的知识点实例
2020/07/30 Python
python切割图片的示例
2020/11/12 Python
翻新二手苹果产品的网络领导者:Mac of all Trades
2017/12/19 全球购物
来自南加州灵感的工作和娱乐服装:TravisMathew
2019/05/01 全球购物
公司前台辞职报告
2014/01/19 职场文书
班级安全教育实施方案
2014/02/23 职场文书
信电学院毕业生自荐书
2014/05/24 职场文书
红色革命电影观后感
2015/06/18 职场文书
小学美术教学反思
2016/02/17 职场文书
Ruby GDBM操作简介及数据存储原理
2022/04/19 Ruby
Java 轮询锁使用时遇到问题
2022/05/11 Java/Android
python数字图像处理之图像自动阈值分割示例
2022/06/28 Python