如何连接Oracle数据库?ORA-12560:TNS协议适配器错误解决方法
ORA-12560: TNS:协议适配器错误 解决方法
核心问题:连接字符串格式错误
你使用了JDBC的连接串格式(jdbc:oracle:thin:@...),但cx_Oracle不支持这种格式,这是触发错误的直接原因。
修正后的代码示例
cx_Oracle支持以下几种正确的连接方式:
方式1:完整连接串格式
import cx_Oracle # 格式:用户名/密码@主机:端口/服务名 conn = cx_Oracle.connect("your_username/your_password@****_***.**.com:1521/your_service_name") c = conn.cursor()
方式2:分参数传递(更易维护)
import cx_Oracle conn = cx_Oracle.connect( user="your_username", password="your_password", dsn="****_***.**.com:1521/your_service_name" ) c = conn.cursor()
方式3:用makedsn构建DSN
import cx_Oracle # 构建DSN(数据源名称) dsn = cx_Oracle.makedsn("****_***.**.com", 1521, service_name="your_service_name") conn = cx_Oracle.connect("your_username", "your_password", dsn) c = conn.cursor()
额外排查点
- 确认目标主机的Oracle监听服务正常运行,默认1521端口可访问
- 确认使用的服务名(或SID)正确,不要混淆两者的区别
- 本地环境需安装对应版本的Oracle客户端,cx_Oracle依赖客户端库才能正常工作
内容的提问来源于stack exchange,提问作者Python-data
相关产品推荐
相关产品推荐

