我想学习如何使用 Python 处理 Oracle 数据库。如果我理解正确,您可以使用 Oracle Instant Client 远程连接到 Oracle 数据库,但我无法连接。我怀疑问题是我不知道 localhost/instance 组合使用什么参数。我相信 localhost 只是我的机器名称,或者它可能是我尝试过的字面上的“localhost”,但我不知道如何也找不到帮助告诉我如何找到数据库实例的服务名称。
在提示符中,我打开 python,导入 cx_Oracle 并使用此示例代码中指定的“Easy Connect String” ,使用“(我的机器名称)/orclpdb”或字面意思是“localhost/orclpdb” DEFAULT_CONNECT_STRING
。
示例代码创建了一个变量MAIN_CONNECT_STRING
,我在命令提示符中使用它来尝试连接到远程数据库:
cnxn = cx_Oracle.connect(MAIN_CONNECT_STRING)
cx_Oracle.DatabaseError: ORA-12541: TNS:no listener
我找到的答案似乎基于this,或者其他人提到的tnsnames.ora
,或者listener.ora
是我没有的文件。我也尝试使用instantclient-sqlplus-nt-12.2.0.1.0
.
背景:
- Windows 7的
- 我下载
cx_Oracle-6.1-cp27-cp27m-win32.whl
并instantclient-basic-nt-12.2.0.1.0.zip
- 我把它
.whl
放入“C:\Python27\Scripts\” - 我用python
-m pip install cx_Oracle --upgrade
安装cx_Oracle
。 - 我解压了即时客户端 zip 并将子文件夹放在这里“C:\instantclient_12_2”
- 我添加
;C:\instantclient_12_2
到PATH
.