使用 Python 连接到 Oracle 数据库
Connection to Oracle DB with Python
我正在尝试使用 Python 连接到我的 Oracle 数据库。
我目前正在使用 cx_Oracle 连接它,但不起作用...
#!/usr/bin/python3
import cx_Oracle
dsn_tns = cx_Oracle.makedsn('Host Name', 'Port Number', service_name='Service Name')
conn = cx_Oracle.connect(user=r'user', password='password', dsn=dsn_tns)
c = conn.cursor()
c.execute('select * from person')
conn.close()
错误:
conn = cx_Oracle.connect(user=r'g_user', password='G_user', dsn=dsn_tns)
cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory". See https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html for help
我访问了网站,但没有找到任何有用的信息...
我的代码中有什么地方错了吗?
确保您已安装正确的 oracle 客户端(您可以从此处“https://www.oracle.com/in/database/technologies/instant-client/winx64-64-downloads.html”找到 oracle 客户端包并添加在安装 python 的文件夹中下载文件夹,然后将此位置(您的客户端包文件夹的位置)添加到系统的环境变量中。希望这会起作用。
我建议您首先检查 OS、Python 和 Oracle Instant Client 体系结构的兼容性:
import platform
platform.architecture()
那么,我绝对建议您在 jupyter notebook 中设置 Oracle Instant Client:
import os
os.environ["PATH"] = "Complete Location of Instant Client Folder" + ";" + os.environ["PATH"]
来源:cx_Oracle error. DPI-1047: Cannot locate a 64-bit Oracle Client library
你的错误是
DPI-1047: Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory".
在启动 Python 进程之前,您的操作系统搜索路径中需要 Oracle Linux 64 位客户端二进制文件。
最简单的方法是安装免费的 Oracle Instant Client。使用最新的 19c 版本 - 它可以让您连接到 Oracle DB 11.2 或更高版本。安装说明位于下载页面的底部。如果您安装 RPM,一切都已为您配置好。如果您安装 ZIPS,我更喜欢使用 ldconfig
设置库搜索路径,这也在说明中显示。
我正在尝试使用 Python 连接到我的 Oracle 数据库。 我目前正在使用 cx_Oracle 连接它,但不起作用...
#!/usr/bin/python3
import cx_Oracle
dsn_tns = cx_Oracle.makedsn('Host Name', 'Port Number', service_name='Service Name')
conn = cx_Oracle.connect(user=r'user', password='password', dsn=dsn_tns)
c = conn.cursor()
c.execute('select * from person')
conn.close()
错误:
conn = cx_Oracle.connect(user=r'g_user', password='G_user', dsn=dsn_tns)
cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory". See https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html for help
我访问了网站,但没有找到任何有用的信息...
我的代码中有什么地方错了吗?
确保您已安装正确的 oracle 客户端(您可以从此处“https://www.oracle.com/in/database/technologies/instant-client/winx64-64-downloads.html”找到 oracle 客户端包并添加在安装 python 的文件夹中下载文件夹,然后将此位置(您的客户端包文件夹的位置)添加到系统的环境变量中。希望这会起作用。
我建议您首先检查 OS、Python 和 Oracle Instant Client 体系结构的兼容性:
import platform
platform.architecture()
那么,我绝对建议您在 jupyter notebook 中设置 Oracle Instant Client:
import os
os.environ["PATH"] = "Complete Location of Instant Client Folder" + ";" + os.environ["PATH"]
来源:cx_Oracle error. DPI-1047: Cannot locate a 64-bit Oracle Client library
你的错误是
DPI-1047: Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory".
在启动 Python 进程之前,您的操作系统搜索路径中需要 Oracle Linux 64 位客户端二进制文件。
最简单的方法是安装免费的 Oracle Instant Client。使用最新的 19c 版本 - 它可以让您连接到 Oracle DB 11.2 或更高版本。安装说明位于下载页面的底部。如果您安装 RPM,一切都已为您配置好。如果您安装 ZIPS,我更喜欢使用 ldconfig
设置库搜索路径,这也在说明中显示。