python执行oracle命令_linux环境中python连接oracle

本文详细介绍了在Linux环境下,如何使用Python连接Oracle数据库。首先确保Python、Oracle客户端和cx_Oracle模块版本一致,然后安装Oracle客户端,配置tnsnames.ora文件,设置环境变量,并通过Python代码进行连接测试。在测试过程中遇到libclntsh.so找不到的问题,可以通过修改/etc/ld.so.conf并重新加载解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第1章 安装cx_Oracle模块

安装cx_Oracle须知:

首先安装配置时,必须把握一个点,就是版本一致!

包括:系统版本,python版本,oracle客户端的版本,cx_Oracle的版本,然后安装配置就容易了!

1.1  查看Oracle的版本

SQL> select  * from  v$version;

1.2  查看python版本

[wonders@cm02 ~]$ source activate python36

(python36) [wonders@cm02 ~]$ python -V

Python 3.6.10 :: Anaconda, Inc.

1.3  安装cx_Oracle模块

(python36) [wonders@cm02 ~]$ python -m pip install -i http://pypi.douban.com/simple --trusted-host pypi.douban.com cx_Oracle

第2章 安装 oracle客户端

2.1  文件准备

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

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

tnsnames.ora

以上文件存放在了/home/wonders/oracle 目录下

2.2  安装oracle客户端

cd /home/wonders/oracle

$ sudo rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

$ sudo rpm -ivh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm

2.3  创建文件夹network/admin

cd /usr/lib/oracle/11.2/client64

mkdir –r network/admin

vi tnsnames.ora

--DRG----多元线性回归数据库--------------------------------------------

DRG=

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.93.225)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orcl)

)

)

2.4  配置oracle环境变量

1、vi /etc/profile

2、复制一下的代码放到 profile文件中, wq 保存

export ORACLE_HOME=/usr/lib/oracle/11.2/client64

export TNS_ADMIN=$ORACLE_HOME/network/admin

##export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib

export PATH=$ORACLE_HOME:$PATH

3、生效新环境变量,输入下列命令

source /etc/profile

(4)测试数据库连接

sqlplus disease/wonders@DRG

第3章 python连接oracle测试

3.1  执行语句

import os

import cx_Oracle

try:

conn=cx_Oracle.connect('disease/wonders@10.1.93.225:1521/orcl')

cur = conn.cursor() # 游标操作

sql="select * from tb_test_dic"

cur.execute(sql) # 执行sql语句

cases = cur.fetchall() # 获取数据

except cx_Oracle.DatabaseError as e:

print(-1,e)

3.2  错误信息libclntsh.so没有找到

解决方法:

vim /etc/ld.so.conf

#末尾追加

/usr/lib/oracle/11.2/client64/lib #根据你安装oracle版本驱动路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值