Python 操作 Oracle 数据库
前言
操作系统:Window 10 64 位
RPA: IS-RPA 2020.2.0
查看 IS-RPA Python 版本
由下图可知:
IS-RPA 安装在 E 盘,Python 解释器所在的目录在 IS-RPA2020/Python 下
Python 的版本是 Python 3..6.4 32 位
下载 cx_Oracle 第三方库
点击这里下载:下载链接
- cpxx,表示适用于 Python 的版本为 xx
- 带有 win32 后缀是 32 位
- 带有 amd64 后缀是 64 位
举个栗子:cx_Oracle‑7.3.0‑cp36‑cp36m‑win32.whl 表示适用于 Python3.6 版本, 32 位
安装 cx_Oracle 第三方库
# 安装
1.打开 PowerShell
2. 进入 E:\Program Files\IS-RPA2020\Python\Scripts> (这里 IS-RPA 安装在 E 盘)
3. 输入以下命令(这里 Oracle 第三方库的位置在 l D:\download\) PS E:\Program Files\IS-RPA2020\Python\Scripts> ..\python.exe .\pip.exe install D:\download\cx_Oracle-7.3.0-cp36-cp36m-win32.whl
注意:选择对应 Python 版本下载 cx_oracle 第三库
测试连接 Python 第三方库
conn = cx_Oracle.connect('szxy/123@localhost:1527/orcl') cursor = conn.cursor() result = cursor.execute('''select * from DEPT''') data = cursor.fetchall() print(data)
运行发生异常
cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 32-bit Oracle Client librar: "E:\Oracle\product\11.2.0\dbhome_1\bin\oci.dll is not the correct architecture". See https://oracle.github.io/odpi/doc/installation.html#windows for help
发生异常原因是:小编安装是 Oracle 版本是 Oracle 11g 64 位的,而 Python 的版本是 32 位的。
解决方案
Instant Client Downloads for Microsoft Windows 32-bit 下载,这下载速度很慢,耐心等待。
把 instantclient-basic-nt-11.2.0.4.0.zip 解压, 然后将 instantclient-basic-nt-11.2.0.4.0 目录下的 oci.dll、oraocci11.dll、oraociei11.dll 拷贝到 E:\Program Files\IS-RPA2020\Python\Lib\site-packages 目录下
重新运行
结果集中文乱码
# 原来的 conn = cx_Oracle.connect(g_conn_str,) # 修改后的 conn = cx_Oracle.connect(g_conn_str, encoding = "UTF-8", nencoding = "UTF-8")
再次运行
回帖内容已被屏蔽。
只用过 mysql, 但还是学习了。
6
我这边也是怎么解决的
报 invalid private key 有办法解决?
Python 的脚本库,在最新发布版本中大家将可以看到最全的加载好的库文件。将变得更加方便。
6 不错呦收
666
不错呦,收藏了
get!!
不错!
感觉 Python 是世界上最好的语言!
哎哟,不错哦