Oracle 10和Oracle 11客户端共存

时间:2011-03-11 19:35:38

标签: asp.net oracle oracle10g oracle11g coexistence

我是一名asp.net网络开发人员。

我已经安装了Oracle Client 11以测试某些功能(EF支持),但我的应用程序必须在Oracle10中,因为我的客户使用它。

所以,如果我在我的客户项目中工作,我需要Oracle10 instaled(在我的工作站中测试它),如果我想测试Oracle11的功能,我需要安装oracle 11。

我的问题是:如何在同一个工作站中共存Oracle 10和11客户端。

换句话说,我想在自己的工作站中调试和运行我的asp.net Web应用程序,只需将web.config更改为使用Oracle10或Oracle11客户端。

有可能吗?

1 个答案:

答案 0 :(得分:9)

只要在不同的Oracle Homes中安装两个版本的Oracle客户端,它们就应该和平共存。只有几个需要注意的问题

  1. 默认情况下,每个Oracle Home都有一个单独的tnsnames.ora文件(和sqlnet.ora文件等)。如果您在一个Oracle Home中配置了TNS别名而在另一个Oracle Home中没有配置TNS别名,那么这通常会造成混淆。您可以通过将TNS_ADMIN环境变量设置为指向包含TNS配置问题的一个真正源的目录(即将TNS_ADMIN设置为%Oracle11g_Home%\ network \ admin以始终使用)来将您的环境配置为使用一组TNS配置文件来自11g Oracle Home的tnsnames.ora文件。
  2. 某些第三方产品不符合多家庭标准。例如,如果您使用类似旧版Microsoft ODBC驱动程序的Oracle,它将使用您的PATH中首先出现的任何版本的Oracle客户端。如果您使用Oracle驱动程序连接到数据库,那应该不是问题。如果您确实需要切换哪个是默认的Oracle Home,则可以手动编辑PATH,也可以启动Oracle Universal Installer并在“已安装的产品”下启动。在环境中,您可以控制Oracle Homes在PATH中显示的顺序。