学堂 学堂 学堂公众号手机端

mac python 连接oracle数据库(mac cx_Oracle.DatabaseError: DPI-1047: )

lewis 1年前 (2024-03-26) 阅读数 8 #技术


连接oracle报错:

mac cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library


网上找了很多博客,终于找到个靠谱的。

按照以下方式连接:

1.下载oracle客户端

​​Instant Client for macOS (Intel x86)​​

2.创建文件夹/opt/oracle ,将下载的文件拷贝到此处,并解压缩

sudo mkdir /opt/oracle


3.用户目录中创建lib文件夹,并配置软链接,命令如下

mkdir ~/lib ln -s /opt/oracle/instantclient_19_8/libclntsh.dylib ~/lib/

我执行上面那个命令时,报错了,提示我已经存在文件了,不能新建,那我则直接配置软连接

ln -s /opt/oracle/instantclient_19_8/libclntsh.dylib ~/lib/

4.pip安装cx-Oracle

pip install cx-Oracle -i https://pypi.tuna.tsinghua.edu.cn/simple

5.写python代码测试是否连接成功

import cx_Oracle   #导入模块
con= cx_Oracle.connect('用户名', '密码', '数据库ip/服务名') #创建连接
curs=con.cursor() #创建游标
sql = '' #你写的sql
sql_conn = curs.execute(sql) #执行sql语句
result = curs.fetchone() #获取一条数据
print(result) #打印数据
curs.close() #关闭游标
con.close() #关闭数据库连接

当我用上面的方式连接时报错了。con= cx_Oracle.connect('用户名', '密码', '数据库ip/数据库名')

#创建连接

cx_Oracle.DatabaseError: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

这里应该填service name服务名。

下面这个是用工具连接的时候填的服务名,这里与这个名字保持一致。

注意:

我并没有添加环境变量,只按照上面5步即成功。

版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门