安装cx_oracle

本文主要介绍在Linux(CentOS)下将Python的版本升级为3.6.2的方法

-升级python

[Linux下升级安装Python-3.6.2版本] (https://www.cnblogs.com/tssc/p/7762998.html)

-检查对应环境(python版本 pip版本)

[Installing Packages — Python Packaging User Guide] (https://packaging.python.org/tutorials/installing-packages/)

-对应的包下载

python 想远程访问 Oracle 数据库,需要 cx_Oralce 模块,又依赖Oracle Instant Client 代替完整的Oracle Clien

我的系统是Linux x86-64 ,可以输入 uname -a 命令来查看。

所以去oracle官网下载以下两个文件:basic和sdk。(版本自选)

[依赖包官方地址] (https://upload-images.jianshu.io/upload_images/13011342-59829c8f53cc821d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

官方文件下载地址:

[Instant Client for Linux x86-64 (64-bit)](http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html)

下载后将这两个文件放在 $ORACLE_HOME 录下,并解压得到instantclient_11_2,

(ps:

如果不是root用户登录 或者不是解压在 $ORACLE_HOME目录下 然后需要设置环境变量,如果登陆用户不是root用户,所以修改.bashrc文件来设置环境变量。

通过指令:vi ~/.bashrc,添加如下两行内容:

ORACLE_HOME=/你的目录/instantclient_11_2/

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME

修改完成之后,使你的修改生效,使用指令 source ~/.bashrc

)

接下来是建立一个连接libclntsh.so,指令如下:

cd /你的目录/instantclient_11_2/

ln -s libclntsh.so.11.1 libclntsh.so

最后是安装cx_oracle

我下载的cx_oracle版本是cx_Oracle-7.1.1.tar.gz

(下载地址:[cx-Oracle · PyPI](https://pypi.org/project/cx-Oracle/#files) )

解压后,进入解压目录安装:

tar -xvf cx_Oracle-7.1.1.tar.gz

cd cx_Oracle-7.1.1

python setup.py install

这样就安装好了,可以使用python指令验证:

import cx_Oracle
  • 测试验证小代码(python):
#! coding:utf-8

import cx_Oracle

conn = cx_Oracle.connect('oracle_user/[email protected]:1521:ora11g')

cur = conn.cursor()

cur.execute(" \

SELECT TABLE_NAME,TABLESPACE_NAME,CLUSTER_NAME from user_tables where rownum < 5 \

")  # 查询数据内容

rows = cur.fetchone()  # 由于每条数据格式一样,只取一条内容格式来赋值

rowsList = list(rows)

TABLE_NAME,TABLESPACE_NAME,CLUSTER_NAME = rowsList  # 取出查询到的数值,并赋值给参数

print(TABLE_NAME)

while rows is not None:

    f = open('FileTable.txt', 'a+')

    f.write(str(rows).lstrip('(').rstrip(')').replace(', ', '\t').replace("'", "") + '\n')

    rows = cur.fetchone()

cur.close()

conn.close()

-测试结果(over)

image

你可能感兴趣的:(安装cx_oracle)