使用oracledb时出现Oracle错误:ORA-28759:无法打开文件

hsgswve4  于 2023-10-16  发布在  Oracle
关注(0)|答案(2)|浏览(349)

我试图使用oracledb从python连接到数据库,但我得到错误:
ORA-28759:无法打开文件
我的代码是标准连接代码:

import oracledb
oracledb.init_oracle_client(lib_dir=r"C:\oracle\instantclient_18_5")

dbadw = """###fromtnsnames"""

connx = oracledb.connect(user='my_user', password ='my_password',dsn=dbadw , encoding="UTF-8")

c= connx.cursor()

如果没有初始化oracle_client,我得到的错误是:

DPY-6005: cannot connect to database (CONNECTION_ID=r+tcRVTAlqmL/bxaTd38UA==).
DPY-6000: Listener refused connection. (Similar to ORA-12506)

用户im使用连接到数据库不是管理员,但我检查,我可以打开和写入文件,并写入文件的钱包目录
我使用jupyter笔记本电脑
我也尝试了cx_Oracle,但pip install cx_Oracle抛出错误:需要Microsoft Visual C++ 14.0或更高版本。得到它与“微软C++构建工具”,我不能安装,因为我不是管理员。我检查了许多其他职位上同样的错误,但我没有得到任何地方
任何其他信息,我可以给予,以解决这个问题,让我知道,提前感谢!

n53p2ov0

n53p2ov01#

错误ORA-28759: failure to open file通常是由于您的sqlnet.ora文件在其WALLET_LOCATION条目中没有有效值。这必须是文件cwallet.sso所在的目录。
在精简模式下引发的带有短语Similar to ORA-12506的错误DPY-6005告诉您类似的事情。在瘦模式下,您必须在wallet_location参数中指定钱包的位置。您还需要(默认情况下)指定wallet_password参数。
连接到云数据库的文档应该涵盖您可能遇到的任何剩余问题!

abithluo

abithluo2#

对于任何人在未来面临同样的问题,我真的很挣扎与这个问题,但安东尼的答案帮了我很大的忙。
我所做的就是遵循文档中的步骤
基本上,将tnsname.ora、sqlnet.ora和cwallet.sso复制到instantclient/network/admin目录,或者您可以选择任何目录,只要您在sqlnet.ora文件中指定了它。
希望这对你有帮助!

相关问题