• 简介

    cx_Oracle是用python连接oracle的驱动模块,参考文章:
    [cx_Oracle文档](http://cx-oracle.sourceforge.net/html/index.html)
    [木匣子](http://www.cnblogs.com/hzhida/archive/2012/08/13/2636735.html)
  1. 下载安装包
    cx_Oracle-5.1.2-10g-py26-1.x86_64.rpm
    oracle-instantclient12.1-basic-12.1.0.1.0-1.x86_64.rpm
    oracle-instantclient12.1-devel-12.1.0.1.0-1.x86_64.rpm

    官网下载地址:

    http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
    http://cx-oracle.sourceforge.net/
  2. 安装
    安装命令:
    rpm -Uvh cx_Oracle-5.1.2-10g-py26-1.x86_64.rpm
    rpm -Uvh oracle-instantclient12.1-basic-12.1.0.1.0-1.x86_64.rpm
    rpm -Uvh oracle-instantclient12.1-devel-12.1.0.1.0-1.x86_64.rpm
  3. 配置环境变量
    vi /etc/profile在/etc/profile文件追加如下信息:
    export ORACLE_HOME=/usr/lib/oracle/12.1/client64
    export PATH=$PATH:$ORACLE_HOME/bin
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
    export TNS_ADMIN=$ORACLE_HOME/network/admin

    执行:

    source /etc/profile
  4. 验证安装是否成功

    验证方法:在目标服务器上执行:
    python,import cx_Oracle

    如果验证失败,参考5异常处理

  5. 异常处理
    如果出现下面的错误:

    [root@client oracle]# python
    import cx_Oracle
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    ImportError: libclntsh.so.11.1: cannot open shared object file: No such file or directory
    ImportError: libclntsh.so.11.1: cannot open shared object file: No such file or directory
    这是由于驱动文件名称不对引起的
    在服务器上执行命令:
    find / -name libclntsh.so.*
    [root@client oracle]# find / -name libclntsh.so.*
    /usr/lib/oracle/12.1/client64/lib/libclntsh.so.12.1
    可见是文件名称不对,执行如下命令:
    cp /usr/lib/oracle/12.1/client64/lib/libclntsh.so.12.1
    /usr/lib/oracle/12.1/client64/lib/libclntsh.so.11.1
    重新执行第四步,验证安装是否成功
  • cx_Oracle增删改查

     import cx_Oracle
  • 连接

    dsn=cx_Oracle.makedsn(host, int(port), dbname)
    self.conn = cx_Oracle.connect(user, passwd ,dsn)
    self.cursor = self.conn.cursor()
  • def insert(self, sql, param, flag = True):
    sql = self.sqltran(sql, param)
    self.cursor.execute(sql)
    self.conn.commit()
  • def selectall(self, sql, param=None):
    sql = self.sqltran(sql, param)
    self.cursor.execute(sql)
    result = self.cursor.fetchall()
    return result
  • 更新
    def update(self, sql, param=None, flag = True):
    sql = self.sqltran(sql, param)
    self.cursor.execute(sql)
    self.conn.commit()
  • def delete(self, sql, param=None):
    sql = self.sqltran(sql, param)
    self.cursor.execute(sql)
    self.conn.commit()
  • 关闭连接
    def __del__( self ):
    if self.conn :
    self.conn.close()
  • sql转换
    def sqltran(self,sql,param):
    for i in range(0,len(param)):
    sql = sql.replace('%s',str(param[i]),1)
    return sql
  • 测试方法
    if __name__ == '__main__':
    param = ('id','name','addr',1)
    sql1= 'select id ,name, addr from test'
    sql0= 'select %s,%s,%s from test'
    sql2= 'insert into test (%s,%s,%s)values(4,4,4)'
    sql3= 'update test set name=222 where id=%s'
    sql4= 'delete from test where id=%s'
    print oracle.selectall(sql0,param)
    print oracle.insert(sql2, param)
    print oracle.selectOne(sql0,param)
    print oracle.update(sql3,('3'))
    print oracle.delete(sql4,('4'))
    print oracle.selectall(sql0,param)
    print 'success'

cx_Oracle安装说明的更多相关文章

  1. Python cx_Oracle 安装小记

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,Python cx_Oracle 安装小记 SQLAlchemy 是 Pytho ...

  2. cx_oracle 安装和配置

    前提条件: 已经成功安装python 已经成功安装oracle客户端 1.去官网上下载对应版本的cx_oracle http://cx-oracle.sourceforge.net/ 注意版本必须与p ...

  3. ArcGIS ArcMap 问题(ArcMap闪退、cx_oracle安装不上)

    一.问题描述 1.ArcMap闪退 2.安装32位cx_oracle提示python目录不存在 二.解决方案 1.修改pythoncore的文件目录,指向C:\Python27\ArcGIS10.3\ ...

  4. python3.6的安装及cx_oracle安装

    一.创建所需目录mkdir -p /home/用户名/software/python3.6.1mkdir -p /home/用户名/priv/bydmkdir -p /home/用户名/priv/by ...

  5. Cx_Oracle 安装

    1. 下载安装 2.把oci.ddl  oraociei11.dll 放到C:\Python33\Lib\site-packages路径下

  6. 使用pip安装 cx_Oracle 模块

    1. 系统环境,linux, python3.5, pip以下命令的执行均使用root用户. 2. 执行 pip install cx_Oracle出错,提示不能定位Oracle的安装.出现该问题的原 ...

  7. Windows 环境下于虚拟环境安装源码安装 cx_oracle

    安装前提条件: (1).安装 instantclient-basic-nt (2).安装 instantclient-sdk-nt (3).安装 Microsoft Visual C++ Compil ...

  8. 安装cx_Oracle 6

    首先声明,本文是在Linux 环境下进行安装.不涉及Windows 版安装. 一. 了解cx_Oracle 安装要求 要python 通过cx_Oracle 6 操作Oracle 数据库,以下几个条件 ...

  9. Windows 环境下于虚拟环境中源码安装 cx_oracle

    安装前提条件: (1).安装 instantclient-basic-nt (2).安装 instantclient-sdk-nt (3).安装 Microsoft Visual C++ Compil ...

随机推荐

  1. sqlserver 删掉日志文件ldf以后 救命语句

    sqlserver 删掉日志文件ldf以后  救命步骤: 先新建一个新数据库, 删掉新建的 .mdb 用想要还原的mdb覆盖 执行下面的语句 ALTER DATABASE 'DB_Core' SET ...

  2. 新版本ffmpeg解码非完整H264帧失败

    按照ffmpeg/doc/examples/decoding_encoding.c中video_decode_example解码H264,新版本ffmpeg解码非完整H264帧,定量读取数据直接给av ...

  3. Java设计模式系列之单例模式

    单例模式的定义 一个类有且仅有一个实例,并且自行实例化向整个系统提供.比如,多程序读取一个配置文件时,建议配置文件时,建议配置文件封装成对象.会方便操作其中的数据,又要保证多个程序读到的是同一个配置文 ...

  4. Lua学习笔记(六):协程

    多线程和协程 多线程是抢占式多任务(preemptive multitasking),每个子线程由操作系统来决定何时执行,由于执行时间不可预知所以多线程需要使用同步技术来避免某些问题.在单核计算机中, ...

  5. CSS 背景图片的定位和缩放

    在 CSS 中,利用 background-image 属性我们可以指定元素的背景图片,例如: .example { background-image: url(image/some.png); ba ...

  6. Hibernate 中createQuery与createSQLQuery

    本文原址 : http://stta04.javaeye.com/blog/377633 hibernate 中createQuery与createSQLQuery 昨晚帮同事看代码到凌晨2点多,今早 ...

  7. hadoop 关闭进程时报错no 进程 to stop

    前两天和朋友李天王吃饭的时候,聊到了一个hadoop的运维的很简单问题,感觉很有意思,以前也没有注意过,现在加以重现和整理.   感谢李天王的分享....   翻看了yarn-deamon.sh st ...

  8. SRV记录说明

      SRV记录是DNS服务器的数据库中支持的一种资源记录的类型,它记录了哪台计算机提供了哪个服务这么一个简单的信息 SRV 记录:一般是为Microsoft的活动目录设置时的应用.DNS可以独立于活动 ...

  9. hdu 4662 MU Puzzle

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4662 MU Puzzle Time Limit: 2000/1000 MS (Java/Others) ...

  10. C#实现汉诺塔问题

    汉诺塔的由来:汉诺塔是源自印度神话里的玩具.上帝创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上安大小顺序摞着64片黄金圆盘.上帝命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上.并且 ...