【Oracle】2022年 python3连接oracle数据库(window环境)

本文详细介绍了如何配置Oracle环境,包括下载安装Oracle客户端、设置环境变量、配置tnsnames.ora文件,以及在PL/SQL Developer中进行连接。此外,还讲解了使用Python的cx_Oracle模块连接Oracle数据库的过程,包括安装cx_Oracle、验证安装成功及编写Python代码进行数据库连接。通过实例展示了Python连接数据库并执行SQL查询的代码片段。

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

1 Oracle数据库

1.1 Oracle环境配置&客户端连接

1.1.1 下载安装Oracle绿色版客户端instantclient:

到oracle官网下载instantclient basic包,解压缩到E:\ProgramFile\instantclient;

1.1.2 设置环境变量:

NLS_lANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK(注意中间有空格,这个如果不设,toad查询中文会是乱码)
TNS_ADMIN= E:\ProgramFile\instantclient
Path=…;E:\ProgramFile\instantclient

1.1.3 配置tnsnames.tns文件:

在E:\ProgramFile\instantclient下建立文件tnsnames.ora,将下面内容粘贴进该文件:

自定义名称 =
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST =  127.0.0.1)(PORT = 1111))
    )
    (CONNECT_DATA =
      (SERVER=DEDICATED)
      (SERVICE_NAME = database_name)
    )
  )

注:图中红色部分根据自己需要进行更改。

1.1.4 配置PL/SQL Developer进行连接:

在tools/preference里,oracle-connection选项配置oracle home和oci library:

oracle home:E:\ProgramFile\instantclient
oci library:E:\ProgramFile\instantclient\oci.dll

在这里插入图片描述
配置完成,可以重启 plsql developer,输入正确的用户名和密码就可以连接啦

1.2 python连接oracle数据库

1.2.1 安装cx_Oracle包:

http://cx-oracle.sourceforge.net/ 需要注意下版本,根据操作系统和已安装的python版本进行选择
在这里插入图片描述

由于我的python是3.8版本的,所以直接使用pip install cx_Oracle,安装的是cx_Oracle 8.3。

cx_Oracle 8.3 已经使用 Python 3.6 到 3.10 版本进行了测试。旧版本的 cx_Oracle 可以与以前的 Python 版本一起使用。您可以将 cx_Oracle 与 Oracle 11.2、12、18、19 和 21 客户端库一起使用。Oracle 的标准客户端-服务器版本互操作性允许连接到较旧和较新的数据库。例如,Oracle 19c 客户端库可以连接到 Oracle 数据库 11.2。——节选自Oracle官网,见下图,https://oracle.github.io/python-cx_Oracle/。
在这里插入图片描述

1.2.2 安装后的验证:

import cx_Oracle没有报错:
在这里插入图片描述
备注:如果import cx_Oracle 时报错提示找不到OCI.DLL,解决方法:到装了Oracle的机器上找一个,然后copy到Libsite-packages目录下即可。

1.2.3 用python测试连接

import cx_Oracle

conn = cx_Oracle.connect('name/password@127.0.0.1:1111/name')
cursor = conn.cursor()
sql = "select * from table"
try:
    cursor.execute(sql)
    rs = cursor.fetchall()
except:
    print("连接数据库失败")
    print(sql)

print("连接数据库成功")
cursor.close()
conn.close()



#更简洁的写法是
with cx_Oracle.connect('name', 'password', "127.0.0.1:1111/school",
            encoding="UTF-8") as connection:
    cursor = connection.cursor()
    sql = "select * from table a WHERE a.name ='小明'"
    cursor.execute(sql)
    re = cursor.fetchall()
    print(re)
    connection.commit()

输出如下图,说明连接成功了。
在这里插入图片描述

参考博客:
本文主要介绍python对oracle数据库的操作学习
python3连接oracle数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值