2012-07-07 53 views
1

我知道我可以使用下面的代码来枚举网络上的所有SQL Server实例:枚举Oracle数据库的网络

SqlDataSourceEnumerator instance = SqlDataSourceEnumerator.Instance; 
DataTable table = instance.GetDataSources(); 

但我想知道是否有这样的Oracle实例以及的一种方式。 Oracle的ODP.NET(Oracle.DataAccess.Client)支持DataSourceEnuerator,显然不是System.Data.OracleClient。但是,DataSourceEnumerator只枚举在本地TNSNames.ora文件中找到的条目。

回答

3

您所看到的是由于SQL Server和Oracle数据库如何宣布自己的根本区别。 SQL Server(至少2000年和2005年)使用SQL Browser Service来通告网络上可用的数据库。另一方面,Oracle要求您使用TNS entries明确枚举可用的实例。

这是的一个实例,当时在罗马,其中Oracle正在尝试遵循API。不幸的是,没有自定义代码,你将无法复制SQL Server的行为。