python - 将 python 连接到 oracle - DatabaseError:尝试检索错误 ORA-01804 的文本时出错
问题描述
当我尝试将 python 连接到 oracle 时,我在尝试检索错误 ORA-01804 的文本时遇到 DatabaseError: Error。我已经下载了即时客户端 19.3.0.0.0
我正在使用 MacBook(10.15.3)。这是我的代码:
! pip install cx_Oracle
import io
import base64
from urllib.request import urlopen
import os
os.chdir("/Users/aa/Option/Oracle/instantclient_19_3-2") # use the path we copied from step 5
import cx_Oracle
dsn_tns = cx_Oracle.makedsn("aaa", "bbb", service_name="ccc")
conn = cx_Oracle.connect(user= "ddd", password="222", dsn=dsn_tns)
c = conn.cursor()
它返回:
Requirement already satisfied: cx_Oracle in /Users/aa/opt/anaconda3/lib/python3.7/site-packages (7.3.0)
---------------------------------------------------------------------------
DatabaseError Traceback (most recent call last)
<ipython-input-17-d2cb8e0df445> in <module>
10
11 dsn_tns = cx_Oracle.makedsn("aaa", "bbb", service_name="ccc")
---> 12 conn = cx_Oracle.connect(user= "ddd", password="222", dsn=dsn_tns)
13 c = conn.cursor()
DatabaseError: Error while trying to retrieve text for error ORA-01804
我该如何解决?非常感谢。
解决方案
在运行脚本之前,请确保您的 ORACLE_HOME 和 LD_LIBRARY_PATH 环境变量已正确设置(或取消设置)。
推荐阅读
- javascript - 插入新记录时出错(php中未定义的id错误)
- azure-maps - Azure Maps Web SDK - 地图控件工具提示始终为英文
- java - 使用 JMS 为 Azure 服务总线安排消息
- spring - Spring Data JPA - 无法插入数据库 - 注释问题?
- delay - 延迟交易过帐
- android - Mixpanel 无法记录列表数据类型
- mysql - MySQL ORDER 的字母数字字符串,优先于数字,然后是尾随的非数字字符
- c++ - 我的代码需要多少抽象才能正确测试?
- ios - Firebase 的 .isNewUser 方法总是返回 false
- c++ - 如何将文件中的每个字符加倍?