zoukankan      html  css  js  c++  java
  • 连接oracle数据库

    一、连接oracle数据库

      一、windows环境

      oracle windows客户端下载地址:http://www.oracle.com/technetwork/topics/winx64soft-089540.html

      1、首先需要安装好oracle数据库,本机适用plsql连接数据库正常,记录下数据库名称

      oracle连接工具下载地址:https://www.allroundautomations.com/bodyplsqldevreg.html

      image

      2、安装cx_oracle模块

    pip install cx_Oracle

      3、python中引入模块

    import cx_Oracle as cx

      4、测试

    conn = cx.connect('sys/password@localhost/orcl')    
    cursor = conn.cursor ()  
    cursor.execute ("select * from dual")  
    row = cursor.fetchone ()  
    print (row)    
    cursor.close ()  
    conn.close () 

      二、Linux环境

      1、涉及软件包

        1、cx_Oracle

      下载地址:http://sourceforge.net/projects/cx-oracle/files/?source=navbar

      我下载的是的cx_Oracle-5.1.2.tar.gz

        2、Oracle_client

      使用cx_Oracle必须要安装Oracle_client端,或者你已经安装了Oracle数据库。

      下载地址:http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

      以连接Oracle11为例需要下载以下rpm包:

      oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

      oracle-instantclient11.2-jdbc-11.2.0.4.0-1.x86_64.rpm

      oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm

      oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

      oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm

      oracle-instantclient11.2-tools-11.2.0.4.0-1.x86_64.rpm

      软件包都下载完后,我们开始来安装。

      2、源码安装

        1、Oracle_client端安装:
      # rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm  oracle-instantclient11.2-jdbc-11.2.0.4.0-1.x86_64.rpm  oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm  oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm  oracle-instantclient11.2-tools-11.2.0.4.0-1.x86_64.rpm
      # echo /usr/lib/oracle/11.2/client64/lib/ >> /etc/ld.so.conf
      # ldconfig

      如果不进行ldconfig配置,在运行cx_Oracle时会报以下错误:

    ibclntsh.so.11.1: cannot open shared object file: No such file or directory
        2、设置相应用户的环境变量:

      在这里需要说明下,你使用哪个帐户装cx_Oracle就需要配置哪个帐户的环境变量,以下已root帐户为例;

      如果不配置环境变量、或环境变量配置不正确,在安装cx_Oracle时,会报各种错误,比如说:

    oci.h: No such file or directory
    
    #vi ~/.bashrc
    
    export TNS_ADMIN="/usr/lib/oracle"
    export ORACLE_HOME="/usr/lib/oracle/11.2/client64"
    export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${ORACLE_HOME}/lib"
    export PATH="${PATH}:${ORACLE_HOME}"
    
    #source ~/.bashrc
        3、源码安装
    #tar -zxvf cx_Oracle-5.1.2.tar.gz
    #cd cx_Oracle-5.1.2
    #python setup.py install
        4、安装成功后相应检查
    [root@HAProxy01 Scripts]# python
    
    Python 3.3.0 (default, Sep 14 2017, 14:53:20)
    
    [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux
    
    Type "help", "copyright", "credits" or "license" for more information.
    
    >>> import cx_Oracle
    
    >>> 

      3、脚本实例:

    #!/usr/bin/python  
    # -*- coding: UTF-8 -*-  
    
    import cx_Oracle as db
    import os
    os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
    
    def queryOracle(sql):
        username = "US_ORDER"      #用户名
        passwd = "******"          #用户密码
        host = "192.168.1.203"     #服务器IP
        port = "1521"              #oracle端口
        sid = "ORCL"               #oracle的
        dsn = db.makedsn(host, port, sid)
        con = db.connect(username, passwd, dsn)
        cur = con.cursor()
        cur.execute(sql)
        result  = cur.fetchall()
        cur.close()
        con.close()
        return result
    
    if __name__=="__main__":
        sql = "select sysdate from dual"    #需要执行的SQL
        result = queryOracle(sql)
        print(result)

      执行结果:

    [root@HAProxy01 Scripts]# ./check_oracle_tables.py
    
    [(datetime.datetime(2017, 9, 15, 12, 1, 51),)] 
  • 相关阅读:
    c语言,浮点数转byte array
    go的select 只会执行一个case,就会退出select 块
    【转】pphp中goto的用法
    [转]php 中yield是个什么东西
    z-index 0 和auto的区别,这个例子好好琢磨一下
    SpringMVC框架下实现原生分页功能
    Jackson 高级应用
    Jackson 的 基本用法
    Jackson转换为Collection、Array
    spring处理数据库中Date类型字段转换成时间戳问题
  • 原文地址:https://www.cnblogs.com/happy-king/p/9474815.html
Copyright © 2011-2022 走看看