我有一份使用Business Object Provider的SSRS报告。该DLL与Oracle服务器有连接。每当我运行报告时,我都会收到此错误消息:
“Oracle.DataAccess.Client.OracleException ORA-12514:TNS:侦听器当前不知道连接描述符中请求的服务”
任何人都知道为什么?
答案 0 :(得分:1)
听起来你安装了oracle客户端,但还没有设置你的TNS监听器。
应该有一个名为“tnsnames.ora”的文件,在该文件中你需要添加一个新的监听器。如果是Windows安装,则可能还有网络配置GUI。
答案 1 :(得分:0)
如果您选择这样做,一般的tnsnames.ora条目将如下所示:
DBAlias =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))
(CONNECT_DATA = (SERVICE_NAME = YourDBServiceName))
)
您的tnsnames.ora文件通常位于ORACLE_HOME / network / admin目录中。
从技术上讲,你不是“创建一个监听器”,而是为Oracle客户端网络连接字符串定义一个别名,它将在某个地方引用一个监听器。
或者,您可以指定EZConnect字符串,如果您不想/不能使用tnsnames.ora条目:
"Data Source=//yourserver:1521/yourDB;User ID=theUser;Password=thePW"
您需要在sqlnet.ora文件中输入以下内容:
NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)