1

我知道我可以使用以下代码枚举网络上的所有 SQL Server 实例:

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

但我想知道是否有办法为 Oracle 实例执行此操作。Oracle 的 ODP.NET (Oracle.DataAccess.Client) 支持 DataSourceEnuerator,但显然 System.Data.OracleClient 不支持。但是,DataSourceEnumerator 仅枚举在本地 TNSNames.ora 文件中找到的条目。

4

1 回答 1

3

您所看到的是由于 SQL Server 和 Oracle 数据库如何宣布自己的根本差异。SQL Server(至少 2000 和 2005)使用SQL Browser 服务来通告网络上可用的数据库。另一方面,Oracle 要求您使用TNS 条目显式枚举可用的实例。

这是When in Rome的一个实例,Oracle 正在尝试遵循 API。不幸的是,如果没有自定义代码,您将无法复制 SQL Server 行为。

于 2012-07-07T16:58:21.747 回答