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

Защо внедряването на ODP.NET 11 xcopy не работи на машина с инсталиран Oracle DB 10?

Така че, както разбирам, проблемът беше, че докато Oracle.DataAccess.dll беше в същата директория като приложението, то не можеше да намери своите приятели от по-ниско ниво (oci, et al), оттук и грешката в съвместимостта.

Оказва се, че ако искате дадено приложение да работи с внедряване на ODAC 11 xcopy, независимо какво друго потребителят може да е инсталирал на своята машина, трябва да направите 2 неща:

  1. Задайте променливата на средата PATH за процеса. (Вече правех това.)
  2. Задайте променливата на средата ORACLE_HOME за процеса. (Не правех това.)

    Environment.SetEnvironmentVariable("PATH", Environment.CurrentDirectory + "\\oracle\\11.1\\odac;" + Environment.CurrentDirectory + "\\oracle\\11.1\\odac\\bin;", EnvironmentVariableTarget.Process);
    Environment.SetEnvironmentVariable("ORACLE_HOME", Environment.CurrentDirectory + "\\oracle\\11.1\\odac", EnvironmentVariableTarget.Process);
    

РЕДАКТИРАНЕ: Също така е важно да се отбележи, че Oracle ще изведе тази грешка не само за проблеми с околната среда, но и ако един от файловете липсва на целевата машина. Получих същата грешка на други машини въпреки настройките на околната среда, тъй като бях настроил Subversion да игнорира директории, наречени „bin“, така че OraOps DLL не се копира на клиента.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Функцията за отложено създаване на сегмент не е активирана (ORA-00439)

  2. Как да направя заявка за нещо, което започва с определени знаци?

  3. Нулирайте сумата, когато условието е изпълнено в Oracle

  4. dbms_scheduler Създаване на задание Не изпълняващо се задание

  5. Най-добрият модел на дизайн за затваряне на връзката с базата данни, когато възникне изключение