cx_Oracle.DatabaseError:ORA-12514:TNS:侦听器当前不知道连接描述符中请求的服务

问题描述 投票:4回答:1

我正在尝试从Python程序对新安装的Oracle client 12.2 in RHEL 7 linux进行健全性测试,但是由于上述错误而失败,不确定我在那里缺少什么。请帮忙解决这个问题:

cx_Oracle.DatabaseError: ORA-12514: TNS:listener does not currently know of service 
requested in connect descriptor

我在tnsnames.ora目录下的/home文件

  FRDLD2D1 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(Host = frdld2d1.de.db.com)(Port = 1825))
    )
    (CONNECT_DATA =
      (SID = FRDLD2D1)
      )
   )

我的python程序如下

#!/usr/bin/python
import cx_Oracle
#connection = cx_Oracle.connect('PNTH_LOGGINGB_OWNER/password')
connection = cx_Oracle.connect('PNTH_LOGGINGB_OWNER/[email protected]:1825/orcl')
cursor = connection.cursor()
querystring = "select * from BDR_JOB_MASTER_LOG where ROWNUM <= 1;"
cursor.execute(querystring)

frdld2d1.de.db.com - IP地址:10.245.63.34

感谢是否有人在这里发现故障。

qazxsw poi实用程序无法测试,因为它是即时客户端版本

tnsping

但是使用oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm,我能够毫无问题地连接数据库。

python linux oracle database-connection cx-oracle
1个回答
5
投票

请使用此作为您的连接字符串:

SQLPlus

connection = cx_Oracle.connect('PNTH_LOGGINGB_OWNER', 'hdgf_76trf', cx_Oracle.makedsn('10.245.63.34',1825,'FRDLD2D1') ); 文件中将SERVICE_NAME = FRDLD2D1更改为SID = FRDLD2D1可能是另一种选择。

© www.soinside.com 2019 - 2024. All rights reserved.