我发现了这个website,它表明我可能能够使用python连接到我的Oracle ADW云数据库。我试着运行下面的代码,但一直遇到相同的错误。有人知道如何解决这个问题吗?注意:更改密码的原因很明显
Jupyter笔记本中的代码:
import cx_Oracle as cx
import pandas as pd
import warnings
warnings.filterwarnings('ignore')
pswd = 'ABC'
#Connect to Autonomous Data Warehouse
con = cx.connect(user = 'ADMIN', password = pswd)
query = 'SELECT * from TEST123'
data_train = pd.read_sql(query, con=con)
错误:
DatabaseError: Error while trying to retrieve text for error ORA-01804
当我运行以下代码时,我会遇到相同的错误:
...
#Connect to Autonomous Data Warehouse
con = cx.connect('ADMIN',pswd,"mltest_high")
query = 'SELECT * from TEST123'
data_train = pd.read_sql(query, con=con)
根据错误号和未找到消息文本的事实猜测,cx_Oracle正在使用Oracle即时客户端库,但您已将Oracle_HOME环境变量设置为其他软件。如果是,请取消ORACLE_主页的设置。或者,您可能只使用本地Oracle DB安装中包含的库,并且没有完全设置Oracle环境变量,例如,没有将Oracle_设置为HOME。或者您可能需要更新版本的Oracle客户端库—获取19c库,例如Oracle Instant client。同时检查关于ORA-1804的其他问题。如果您用运行Python的计算机上安装的Oracle软件的信息更新您的问题,可能会得到更详细的答案
听起来您已经为连接整理好了云钱包,但以下是阅读您的标题后出现此问题的参考资料:
一篇博文How to connect to Oracle Autonomous Cloud Databases
cx_Oracle文档Connecting to Autononmous Databases
Oracle ADW文档:Connect with Python, Node.js, and other Scripting Languages
因此,为了弄清楚Oracle钱包如何与SLQNET.ora和TNS_NAMES.ora文件以及系统环境变量内联工作,这需要大量的教育,但this website确实让visual studio代码中的python(in.ipynb)能够与Oracle的云ADW系统相连接。这几乎正是我让它在我的机器上工作所做的,但我没有在虚拟环境中工作。我不得不想出一个解决上述项目的办法,但我能够使用系统链接到我的钱包中的目录
重要的是要知道你需要做这些事情才能让它工作。从ADW下载电子钱包时,需要复制TNS_名称中的高/中/低行,并将其粘贴到Oracle/network/admin/TNS_NAMES.ora文件中。您还需要从sqlnet.ora文件中获取钱包信息和ssl服务器,并将其放入Oracle/network/admin/目录中的sqlnet.ora文件中。如果您选择不使用本文中演示的虚拟环境,要使钱包信息行的目录链接正常工作,您需要将所述目录设置为钱包文件夹的目录。我拉开了我的拉链;不确定是否需要
最后,您需要将TNS_名称的系统环境变量设置为TNS_名称.ora和sqlnet.ora系统文件所在的位置(不是钱包下载文件夹中的文件),可能位于Oracle\network\admin中
下面是为我工作的代码。我希望这对其他人有所帮助,他们不必像我一样,经历同样的困难才能明白这一点
相关问题 更多 >
编程相关推荐