python cx oracle_python用cx_Oracle连接Oracle数据库

需求:用python的cx_Oracle库连接Oracle数据库,并执行sql语句获取结果

使用到的工具:pycharm、cx_Oracle、Oracle Instant Client(即时客户端)

由于使用的是cx_Oracle,必须要安装一个客户端,可以参考其官方文档https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html

8893dcfc1020b52d5fccd0f04f8e6e59.png

1. 下载cx_Oracle库

pip install cx_Oracle

下载完成之后的提示:

24c7f73116625f8aaac2f4fbdf50bdb0.png

2.1 下载Oracle Instant Client(即时客户端)

这是Oracle Instant Client的下载首页,有很多种版本可供下载。

我本次下载的是instantclient_19_9版本的64位的。

链接:https://pan.baidu.com/s/1VLvHy-VpsRK3gCp-wbbzjw

提取码:t1ra

本机是32位的就下载32位的,本机是64位就下载64位的。

但要注意第三方工具如:PL/SQL Developer和Toad的版本,32位的要对应32位的OracleInstant Client,不要因为系统是64位的就下载64位的,这个要注意。

2.2 配置环境

把下载的instantclient_19_9解压到D盘目录下,注意目录不要有中文。

在系统的环境变量中设置变量:

ORACLE_HOME = D:\ce_shi\instantclient_19_9

TNS_ADMIN = D:\ce_shi\instantclient_19_9

NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK

修改path变量:在后面添加D:\ce_shi\instantclient_19_9

2.3 新建

在D:\ce_shi\instantclient_19_9目录下添加一个tnsnames.ora文件

用记事本打开,增加自己的数据库配置信息:

MyDB=

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST= 域名)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = PSSQAS)

)

)

注意格式要排列好

主要改 = 前面的别名,Host为IP地址, SERVICE_NAME为数据库服务器的实例名。

基本上修改HOST就可以,如果实在不行再把SERVICE_NAME修改为开发给你的一段【域名:端口:SERVICE_NAME】中最后的SERVICE_NAME写入

3.python写代码连接Oracle数据库

实例:

import cx_Oracle

# 以下内容,下面括号内的内容可根据实际情况填写

con = cx_Oracle.connect("用户名/密码@IP:端口号/SERVICE_NAME")

# 创建一个游标对象

cur = con.cursor()

# 使用execute执行sql语句

sql = 'select * from EX_EXAMINATION_PAPER where EXAM_ID = 346225'

result = cur.execute(sql)

# 使用fetchall()获取所有数据,并将结果打印出来

print(cur.fetchall())

打印结果:

f508a444871ddeb5016e2ef8763ac20b.png

PS:Oracle Instant Client(即时客户端)卸载方法

“环境变量”中的“系统变量”中:

删除 ORACLE_HOME,TNS_ADMIN, NLS_LANG 三个变量,修改path变量,去掉D:\ce_shi\instantclient_19_9目录

删除D:\ce_shi\instantclient_19_9目录

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值