python连接oracle数据库实例

 更新时间:2014年10月17日 09:00:37   投稿:shichen2014  
这篇文章主要介绍了python连接oracle数据库的方法,实例讲述了连接Oracle数据库的具体步骤及常见的问题,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

相关文章

  • django 使用 PIL 压缩图片的例子

    django 使用 PIL 压缩图片的例子

    今天小编就为大家分享一篇django 使用 PIL 压缩图片的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • python使用socket实现的传输demo示例【基于TCP协议】

    python使用socket实现的传输demo示例【基于TCP协议】

    这篇文章主要介绍了python使用socket实现的传输demo,结合实例形式分析了Python使用socket库基于TCP协议实现的客户端与服务器端相关操作技巧,需要的朋友可以参考下
    2019-09-09
  • Python语法学习之线程的创建与常用方法详解

    Python语法学习之线程的创建与常用方法详解

    本文主要介绍了线程的使用,线程是利用进程的资源来执行业务,并且通过创建多个线程,对于资源的消耗相对来说会比较低,今天就来看一看线程的使用方法具体有哪些吧
    2022-04-04
  • Python代码块及缓存机制原理详解

    Python代码块及缓存机制原理详解

    这篇文章主要介绍了Python代码块及缓存机制原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • python 操作hive pyhs2方式

    python 操作hive pyhs2方式

    今天小编就为大家分享一篇python 操作hive pyhs2方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • matplotlib实现数据实时刷新的示例代码

    matplotlib实现数据实时刷新的示例代码

    这篇文章主要介绍了matplotlib实现数据实时刷新的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • python matplotlib各种画图

    python matplotlib各种画图

    这篇文章主要介绍了python matplotlib各种画图,matplotlib是一种优秀的python数据可视化第三方库,使用matpltlib库画图时,先将它引入,加载里面的pyplot,并命名为plt,然后使用plot函数画图<BR>,下面一起来了解更详细内容吧
    2021-12-12
  • PyInstaller的安装和使用的详细步骤

    PyInstaller的安装和使用的详细步骤

    这篇文章主要介绍了PyInstaller的安装和使用的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • python 判断三个数字中的最大值实例代码

    python 判断三个数字中的最大值实例代码

    这篇文章主要介绍了python 判断三个数字中的最大值,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-07-07
  • python在一个范围内取随机数的简单实例

    python在一个范围内取随机数的简单实例

    在本篇内容里小编给大家分享了关于python在一个范围内取随机数的简单实例内容,有需要的朋友们可以学习下。
    2020-08-08

最新评论