首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle实例不会读取tnsnames.ora

Oracle实例不会读取tnsnames.ora
EN

Stack Overflow用户
提问于 2021-09-11 10:34:22
回答 1查看 134关注 0票数 0

我面临一个问题,使我无法继续我所处的C#开发:我只是不能在C#应用程序上使用C#与我的VisualStudioCommunity2019(它在2015年版本上可以正常工作),尽管它在同一个平台上运行得很好,一个基于相同C#类的web应用程序。

我必须准确地说,我已经有一年多没有开发了,所以我担心我可能已经忘记了一件非常琐碎的事情,但尽管我试图找出我没有看到我可能忘记了什么。

以下是事实:

。我的开发机器叫XWAD8044

。域有一台专用于甲骨文的服务器机器,称为ORA025。

。该服务器上的Oracle实例名为ORA025 (与服务器机器本身的名称相同)

。我想找到一个名为CARL的模式,它的密码是CARLPWD,它是在ORA025实例上创建的,

。在XWAD8044机器上,有一个包含以下实例的TNSNAMES.ORA文件:

代码语言:javascript
复制
ORA025 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ORA025)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORA025)
    )
  )

以下所有指令在XWAD044上都能很好地工作:

代码语言:javascript
复制
ping ORA025 -> OK

tnsping ORA025 -> OK

sqlplus CARL/CARLPWD@ORA025 -> OK, SQLPLUS session starts on the CARL schema

select * from increments -> OK, all the lines of the CARL.INCREMENTS table are listed in the console.

这证明了XWAD044和ORA025之间的连接是完全可行的。

然后使用以下字符串打开连接:

代码语言:javascript
复制
User Id=CARL;Password=CARLPWD;Data Source=ORA025

在我的应用程序中,我引用了ORACLE.MANAGEDDATAACCESS.DLL (我只是将它从多年来使用的ORACLE.DATAACCESS.DLL中更改,但这导致了昨天的失败)

所以问题是,DLL似乎不想使用TNSNAMES.ORA,因为当我试图在卡尔模式上打开一个连接时,我会得到以下错误:

代码语言:javascript
复制
ORA-12504: TNS: listener was not given the Service_name in connect_data

在我看来,这条消息证明Oracle被C#进程嵌入得很好,否则我不会从Oracle实例中获得任何消息,但是它似乎不使用TNSNAMES条目,因为SERVICE_NAME是在ORA025条目中提供的。

有人能告诉我如何解决这个问题吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-09-11 14:37:10

最后,我可以通过使用"EZconnect“方法,将服务器名添加到实例名称(这里的2个名称类似),从而替换了:

代码语言:javascript
复制
User Id=CARL;Password=CARLPWD;Data Source=ORA025

出自:

代码语言:javascript
复制
User Id=CARL;Password=CARLPWD;Data Source=ORA025/ORA025

这样,Oracle.ManagedDataAccess.Client终于能够找到我的Oracle了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69142156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档