• python3.6连接oracle数据库


    下载cx_Oracle模块模块:

    https://pypi.python.org/pypi/cx_Oracle/5.2.1#downloads

    这里下载的是源码进行安装

    [root@oracle oracle]# tar xf cx_Oracle-5.2.1.tar.gz
    [root@oracle oracle]# cd cx_Oracle-5.2.1

    [root@oracle cx_Oracle-5.2.1]# python setup.py build
    Traceback (most recent call last):
    File "setup.py", line 170, in <module>
    raise DistutilsSetupError("cannot locate an Oracle software "
    distutils.errors.DistutilsSetupError: cannot locate an Oracle software installation

    报错解决办法:在root用户的.bash_profile文件中添加oracle_home的环境变量

    export ORACLE_HOME=/u01/app/product/11.2.0/dbhome_1
    PATH=${ORACLE_HOME}/bin:$PATH:$HOME/bin

    [root@oracle cx_Oracle-5.2.1]# source /root/.bash_profile
    [root@oracle cx_Oracle-5.2.1]# echo ${ORACLE_HOME}
    /u01/app/product/11.2.0/dbhome_1

    然后继续build:

    [root@oracle cx_Oracle-5.2.1]# python setup.py build
    running build
    running build_ext

    后面输出信息省略

    [root@oracle cx_Oracle-5.2.1]# python setup.py install
    running install
    running bdist_egg

    后面输出信息省略

    按照完成之后,进行验证模块:

    >>> 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

    解决办法:在root用户的.bash_profile文件中添加LD_LIBRARY_PATH的环境变量

    LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/local/lib
    export LD_LIBRARY_PATH

    [root@oracle cx_Oracle-5.2.1]# source /root/.bash_profile

    [root@oracle cx_Oracle-5.2.1]# python
    Python 3.6.1 (default, Jul 13 2017, 14:31:18)
    [GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import cx_Oracle

    #!/usr/bin/python
    #coding=utf8
    
    
    # import module
    import cx_Oracle as oracle
    
    # connect oracle database
    db = oracle.connect('scott/redhat@192.168.223.138:1521/oracle.test')
    
    # create cursor
    cursor = db.cursor()
    
    # execute sql 
    cursor.execute('select sysdate from dual')
    
    # fetch data
    data = cursor.fetchone()
    
    print('Database time:%s' % data)
    
    # close cursor and oracle
    cursor.close()
    db.close()
    

    [oracle@oracle scripts]$ python connectoracle.py
    Database time:2017-08-04 10:20:39

    #!/usr/bin/python
    #coding=utf8
    
    import cx_Oracle as oracle
    
    def oraclesql(cursor):
       fp = open(r'/home/oracle/scripts/tablespace.sql')
       fp_sql = fp.read()
       cursor.execute(fp_sql)
       data = cursor.fetchall()
       return data
    
    
    if __name__ == '__main__':
       ipaddr = "192.168.223.138"
       username = "system"
       password = "redhat"
       oracle_port = "1521"
       oracle_service = "oracle.test"
       try:
          db = oracle.connect(username+"/"+password+"@"+ipaddr+":"+oracle_port+"/"+oracle_service)
        # 将异常捕捉,然后e就是抛异常的具体内容
       except Exception as e:   
          print(e)
       else:
          cursor = db.cursor()
          data = oraclesql(cursor)
          for i in data:
             print(i)
          cursor.close()
          db.close()
    

      

  • 相关阅读:
    swift关键字
    Swift开发注意点
    Mac上安装lua
    Runtime运行时机制
    ios开发中如何选择图片的加载方式
    ios开发中的静态内存分析
    loadrunner-2-9添加事务
    loadrunner-2-8HTML和URL模式
    loadrunner-2-7设置关联
    loadrunner中Windows Resource没有数据或不可用
  • 原文地址:https://www.cnblogs.com/jsonhc/p/7283620.html
Copyright © 2020-2023  润新知