尝试将Visual Studio应用程序连接到Oracle时出现错误

问题描述:

我是Oracle的新手。我试图将Visual Studio 2010 VB应用程序与远程服务器上的Oracle Server连接起来。尝试将Visual Studio应用程序连接到Oracle时出现错误

我通过证明主机名称和服务名称来配置我的tnsnames.ora。当我试图测试连接在服务器Exploreer使用添加连接功能,我得到了以下错误:

ORA-12514:TNS:监听器目前不知道在连接描述符请求服务的

这是否意味着我输入到tnsnames.ora中的值是错误的。或者,我是否需要配置其他任何文档 - listener.ora,例如?除了上面提到的,我没有做任何其他更改。请让我知道如何解决这个问题,因为它是时间敏感的。

谢谢

先将Visual Studio移出图片。您需要确认您的Oracle客户端已在您的计算机上正确配置。

如果您安装了Oracle连接工具,则应该安装tnsping。在命令行中输入

tnsping <server_name> 

这将尝试找到使用你的TNSNAMES文件中指定的配置(如果你SQLNET文件被配置为拥有甲骨文使用TNSNAMES协议)的Oracle服务器。如果发现它,它会告诉你它使用了什么方法。然后,您可以将此信息用于Visual Studio连接。

确保你的sqlnet文件是正确的。您使用此文件告诉Oracle用于解析服务器的协议顺序(例如,tnsnames,ldap等)。我看起来如下:

SQLNET.AUTHENTICATION_SERVICES = (NTS) 
NAMES.DIRECTORY_PATH = (LDAP,TNSNAMES) 
NAMES.DEFAULT_DOMAIN = <domain_name> 
+0

Thanks.I试图TNSPING,得到了以下几点:使用HOSTNAME适配器来解析别名 试图联系(DESCRIPTION =(CONNECT_DATA =(SERVICE_NAME =))( ADDRESS =(PROTO COL = TCP)(HOST = 165.91.176.54)(PORT = 1521))) OK(0毫秒)这是否意味着它已经配置正确?我必须使用主机名连接吗?我刚刚在Visual Studio的“添加连接”功能中使用我的用户名和密码测试了连接。 – user965767

+0

另外,这里是我的sqlnet文件SQLNET.AUTHENTICATION_SERVICES =(NTS) #NAMES.DIRECTORY_PATH =(TNSNAMES,EZCONNECT) 我应该取消注释第二行吗? – user965767

+0

如果返回tnsping,这意味着您的配置是正确的。您是否安装了Oracle Visual Studio工具(ODT)?或者你刚开始使用服务器资源管理器? –

这通常意味着两件事之一。

  1. 您没有安装ODP.Net或它缺少一些dll的(不太可能)
  2. 你有机器和.NET上的Oracle客户端的多个版本无法找到正确的。

转到机器的系统路径,并确保路径语句中的第一个oracle路径指向正确的oracle客户机安装。

要删除的Oracle

  1. 如果运行
  2. 删除所有Oracle目录停止DTC服务和Oracle MTS服务(C:\ Program Files文件,C:\ ORACLE,C:\ APP等)
  3. 从路径语句中移除甲骨文(所有条目)
  4. 删除任何环境变量
  5. 在本地计算机的注册表和当前用户部分删除甲骨文条目(如果存在)
  6. 重新启动机器
  7. 重新安装正确的版本
+0

你说得对 - 我有2个版本的Oracle客户端。当我尝试在Visual Studio中添加连接时,数据源下拉列表包含client_2目录的tnsnames.ora中包含的别名。路径语句中的第一个Oracle路径也是client_2。所以我认为它是指向正确的客户端安装。在这种情况下我能做些什么? – user965767

+1

老实说,我会删除两个Oracle安装并重新安装干净。大约5年来我一直在处理这些问题(oracle和.net),这并不美观。最好运行一个版本。我正在编辑我的答案,并清除删除oracle的步骤。 – tsells

+0

是否有可能避免所有这些并使用ODBC连接到oracle数据库? – user965767