千家信息网

怎么实现Python连接Oracle

发表于:2024-09-25 作者:千家信息网编辑
千家信息网最后更新 2024年09月25日,本篇内容介绍了"怎么实现Python连接Oracle"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一
千家信息网最后更新 2024年09月25日怎么实现Python连接Oracle

本篇内容介绍了"怎么实现Python连接Oracle"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一:安装Python 3.6

环境设置

Linux:Centos 6.7

Python:Python 3.6

DB:Oracle 19C

新增oracle用户

名字可随便取,脚本都放该用户下

[root@jumplinux01 ~]# useradd oracle

[root@jumplinux01 ~]# passwd oracle

新建安装目录

[root@jumplinux01 ~]# su - oracle

[oracle@jumplinux01 ~]$ mkdir softwore

[oracle@jumplinux01 ~]$ cd softwore/

[oracle@jumplinux01 softwore]$

安装Python3.6

1.由于系统安装完成后Python的版本为2.6,需先升级至3.6

[oracle@jumplinux01 softwore]$ python

Python 2.6.6 (r266:84292, Jul 23 2015, 15:22:56)

[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>>

下载安装文件并解压

[oracle@jumplinux01 softwore]$ wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz

[oracle@jumplinux01 softwore]$ ll -rth

total 22M

-rw-rw-r-- 1 oracle oracle 22M Mar 21 2017 Python-3.6.1.tgz

[oracle@jumplinux01 softwore]$ tar -zxvf Python-3.6.1.tgz

[oracle@jumplinux01 softwore]$ cd Python-3.6.1

创建Python安装目录

[root@jumplinux01 ~]#mkdir /usr/local/python36

[root@jumplinux01 ~]# chown oracle.oracle /usr/local/python36 -R

[root@jumplinux01 ~]# su - oracle

[oracle@jumplinux01 ~]$ cd softwore/Python-3.6.1

[oracle@jumplinux01 Python-3.6.1]$ ./configure --prefix=/usr/local/python36

[oracle@jumplinux01 Python-3.6.1]$ make

[oracle@jumplinux01 Python-3.6.1]$ make install

修改链接

[root@jumplinux01 ~]# mv /usr/bin/python /usr/bin/python_old

[root@jumplinux01 ~]# ln -s /usr/local/python36/bin/python3.6 /usr/bin/python

[root@jumplinux01 ~]# su - oracle

验证是否安装成功

[oracle@jumplinux01 ~]$ python

Python 3.6.1 (default, Mar 16 2020, 21:33:03)

[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>>

yum问题处理

升级完之后yum会无法使用 这时需要修改yum可执行文件文件

问题:

[root@jumplinux01 ~]# yum list

File "/usr/bin/yum", line 30

except KeyboardInterrupt, e:

^

SyntaxError: invalid syntax

处理:

[root@jumplinux01 ~]# vim /usr/bin/yum

#!/usr/bin/python2.6

[root@jumplinux01 ~]# yum list

Loaded plugins: fastestmirror

Determining fastest mirrors

* base: mirrors.aliyun.com

* extras: mirrors.aliyun.com

* updates: mirrors.aliyun.com

...

二:cx_Oracle模块的安装

这节包含 oracle客户端的安装和cx_Oracle模块的安装两部分

环境设置

Linux系统为 Centos 6.7

Python环境为 Python 3.6

Oracle 模块:cx_Oracle

Oracle客户端:Oracle 12c Instant Client

1. 安装Oracle 12c Instant Client

由于这次我们使用Python连接Oracle,所以需要oracle客户端,这里我们使用Oracle 12c Instant Client

https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html

[root@jumplinux01 ~]# chown oracle.oracle /home/oracle/softwore -R

[root@jumplinux01 ~]# ll -rth /home/oracle/softwore/

total 73M

-rw-rw-r-- 1 oracle oracle 22M Mar 21 2017 Python-3.6.1.tgz

drwxr-xr-x 18 oracle oracle 4.0K Mar 16 21:34 Python-3.6.1

-rw-r--r-- 1 oracle oracle 593K Mar 16 22:15 oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm

-rw-r--r-- 1 oracle oracle 51M Mar 16 22:15 oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm

1.1安装Oracle客户端(root用户)

[root@jumplinux01 softwore]# rpm -ivh oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm

[root@jumplinux01 softwore]# rpm -ivh oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm

1.2添加ORACLE_HOME用户环境变量(root用户)

[root@jumplinux01 softwore]# vi ~/.bash_profile

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

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

[root@jumplinux01 softwore]# source ~/.bash_profile

2.下载cx_Oracle模块

专门用于连接Oracle数据的一个模块

https://pypi.org/project/cx-Oracle/5.2.1/#downloads

[root@jumplinux01 softwore]# ll -rth cx_Oracle-5.2.1.tar.gz

-rw-r--r-- 1 oracle oracle 111K Mar 16 22:23 cx_Oracle-5.2.1.tar.gz

3.安装cx_Oracle模块(root用户)

[oracle@jumplinux01 softwore]$ tar -zxvf cx_Oracle-5.2.1.tar.gz

[oracle@jumplinux01 softwore]$ cd cx_Oracle-5.2.1

[oracle@jumplinux01 cx_Oracle-5.2.1]$ python setup.py build

[oracle@jumplinux01 cx_Oracle-5.2.1]$ python setup.py install

...

Installed /usr/local/python36/lib/python3.6/site-packages/cx_Oracle-5.2.1-py3.6-linux-x86_64.egg

Processing dependencies for cx-Oracle==5.2.1

Finished processing dependencies for cx-Oracle==5.2.1

验证安装

如import无错误则说明安装成功

[oracle@jumplinux01 cx_Oracle-5.2.1]$ python

Python 3.6.1 (default, Mar 16 2020, 21:33:03)

[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>> import cx_Oracle

>>>

三:使用cx_Oracle连接Oracle(基础篇)

[oracle@jumplinux01 softwore]$ vi connectoracle.py

#!/usr/bin/python

#coding=utf8

#导入cx_Oracle模块

import cx_Oracle

#创建到Oracle数据库的连接并赋给变量

db=cx_Oracle.connect('cjc/cjc@192.168.2.222:1521/cjcpdb01')

#创建游标并赋给变量cursor

cursor=db.cursor()

#执行Oracle SQL语句

cursor.execute('select sysdate from dual')

#获取执行结果并赋给变量data

#这里fetchone表示获取一行,fetchall为获取所有行

#fetchone返回的是一个字符串

#fetchall返回的是一个列表,哪怕结果只有一行

data=cursor.fetchone()

#打印结果

print ('Database time: %s ' %data)

#关闭数据库连接

cursor.close()

db.close()

运行结果:

错误:

[root@jumplinux01 ~]# su - oracle

[oracle@jumplinux01 ~]$ cd softwore/

[oracle@jumplinux01 softwore]$ python connectoracle.py

Traceback (most recent call last):

File "connectoracle.py", line 8, in

db=cx_Oracle.connect('cjc/cjc@192.168.2.222:1521/cjcpdb01')

cx_Oracle.DatabaseError: ORA-24454: client host name is not set

解决方案:添加hosts

[root@jumplinux01 ~]# cat /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.2.221 jumplinux01

192.168.2.222 cjcos

再次运行结果:

[oracle@jumplinux01 softwore]$ python connectoracle.py

"怎么实现Python连接Oracle"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

模块 用户 结果 变量 客户 环境 客户端 数据 文件 成功 一行 内容 数据库 更多 目录 知识 系统 错误 问题 升级 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 win服务器优化 福建微模块图腾服务器机柜 大力王软件开发 大数据技术包括数据库 git服务器提交文件在哪里 广州天佑网络技术 js修改数据库顺序 和平精英特效服务器怎么购买 网络安全应急救援的方法 pip软件开发系统区别 徐汇区电子网络技术铸造辉煌 如何查看163邮箱服务器设置 风电场网络安全防护检查报告 web技术和数据库如何连接 池州直播平台软件开发费用 关于网络安全法的手抄视频报 深圳市破茧网络技术怎么样 武汉网络安全学院内部红绿灯 宁夏军工守时模块服务器 计算机网络技术生活应用 如何用旧笔记本电脑做服务器 环保科技医疗互联网 四轮评估北航网络安全 mc服务器控制台 ios软件与安卓软件开发 北京千牛网络技术有限公司客服 网络安全执法检查总结报告 宏可以修改数据库吗 华为麒麟服务器型号 门头沟区综合软件开发口碑推荐
0