Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да инсталирате ODP.NET 2.111 и ODP.NET 4.112 в една и съща машина рамо до рамо, докато и двете сочат към един и същ сървър на база данни

Краткият отговор:

Забележка:Опитах се да инсталирам новия ODP.NET върху предишния клиент и успях да се свържа с базата данни, използвайки следния низ за свързване...

Това показва, че новата ви инсталация няма tnsnames.ora и sqlnet.ora в /Network/Admin. Ако сте добре със стария клиент, използвайки новата инсталация на ODP.net, можете или да ги копирате от старата инсталация, или можете да посочите глобално местоположение за всички екземпляри с променливата на средата TNS_ADMIN, т.е. TNS_ADMIN=C:\MyOracleFilesDir

Дългият отговор:

Когато сте инсталирали новия клиент, той най-вероятно също е инсталирал файлове с политика на издателя в GAC, които пренасочват препратките към стария Oracle.DataAccess.dll към новата версия по време на процеса на разрешаване на сглобяването. След това Oracle.DataAccess намира клиента чрез параметър (DllPath) в системния регистър. Можете да замените това местоположение, като зададете dllPath във вашия .config файл:

<configuration>
  <oracle.dataaccess.client>
    <add key="DllPath"            value="C:\yourotherpath"/>
  </oracle.dataaccess.client>
</configuration>

Обикновено това правя, но когато разбирам това повече, осъзнавам, че налагам по-нова dll срещу по-стар клиент. Ако целта ви е да оставите стария клиент недокоснат, по-добър вариант може да бъде да изтриете правилата на издателя от GAC (не мисля, че дори са инсталирани с пълната инсталация на ODAC, а само ODP.net):

Ако трябва да ги инсталирате отново, те обикновено се намират на адрес oraclepath\odp.net\PublisherPolicy.

Друг, и може би по-добър дългосрочен вариант, е да конфигурирате старите клиенти да игнорират политиката на издателя:http://msdn.microsoft.com/en-us/library/cf9025zt%28v=vs.80%29.aspx

И накрая, почти съм сигурен, че .net компонентите за рамки 2.0 срещу 4.0 са отделни опции за инсталиране по време на инсталацията на ODP.net. Мисля, че може да успеете да избегнете този проблем, просто като не инсталирате компонентите 2.0. В тази връзка можете да направите подобна работа, като вместо това разработите своя нов проект срещу 64-битов odp.net. Подобно на v2.0 и v4.0, 32-битовите и 64-битовите също нямат никакво съзнание един за друг.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL COALESCE и NULLIF функция

  2. ORA-38868

  3. Въведение в Oracle Mobile Cloud Service

  4. Функция за ранг в MySQL с клауза Order By

  5. PL/SQL:Грешка PLS-00306:грешен номер или типове аргументи при извикване към задействани за таблица с числа