2012-07-07 93 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的行爲。