mac python 连接oracle数据库(mac cx_Oracle.DatabaseError: DPI-1047: )
连接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步即成功。
版权声明
本文仅代表作者观点,不代表博信信息网立场。