Oracle
 sql >> Baza danych >  >> RDS >> Oracle

InterfaceError:nie można uzyskać dojścia do środowiska Oracle; ORACLE_HOME jest poprawny i SQL*Plus się połączy

Jakiej wersji systemu Windows używasz? Czy to 32 czy 64 bity?

Czy Twój klient Oracle Instant Client 32 lub 64 trochę?

Czy Twoja instalacja Pythona 32 lub 64 trochę?

Czy twoja cx_oracle jest poprawną wersją? 32 lub 64 trochę?

MSVCR90.dll jest częścią pakietu redystrybucyjnego Microsoft Visual C++ 2008 SP1.

Wersja 32-bitowa dostępna tutaj , wersja 64-bitowa dostępna tutaj .

IESHIMS.dll będzie zlokalizowany w C:\Program Files\Internet Explorer\Ieshims.dll (32-bitowa lokalizacja systemu Windows lub 64-bitowa lokalizacja systemu Windows) lub C:\Program Files\Internet Explorer (x86)\Ieshims.dll` (32-bitowa lokalizacja systemu Windows w 64-bitowym systemie Windows), jeśli Twoja wersja systemu Windows to Vista lub nowsza.

Plik GPSVC.dll powinien znajdować się w C:\Windows\System32 .

Dependency Walker zgłasza brak tych ostatnich 2 bibliotek DLL, ponieważ są one używane przez raportowanie błędów systemu Windows, które używają IEFrame.DLL i są ładowane z opóźnieniem, co oznacza, że ​​mogą nigdy nie być potrzebne.

Odkryłem, że aby uzyskać czysty import cx_oracle, musisz upewnić się, że wersje jego zależności są zgodne. Musisz również upewnić się, że instalacja klienta Oracle jest zgodna z Twoim ORACLE_HOME a twoja zmienna PATH zawiera %ORACLE_HOME%/bin , która jest ustawiona jako zmienna środowiskowa lub w rejestrze, a plik tnsnames.ora ma ustawioną wartość TNS_ADMIN. Jak stwierdzono w Emmanuel odpowiedzią, domyślną wartością nieskonfigurowanego ustawienia TNS_ADMIN jest %ORACLE_HOME%\network\admin .

Rzadko korzystałem również z natychmiastowej wersji klienta instalatora oracle, chyba że jest to absolutnie konieczne, ponieważ w przeciwieństwie do innych wersji, które nie są ustawione, zawsze upewnij się, że ścieżka jest ustawiona lub utrzymywana poprawnie, ORACLE_HOME lub TNS_ADMIN, co prowadzi do tego, że tnsnames.ora i OCI.dll nie są znaleziony. Staje się to bardziej skomplikowane, gdy masz wiele wersji Pythona lub wersji Oracle na tej samej maszynie.

Aby jawnie je ustawić, możesz użyć zmiennych środowiskowych (użytkownika lub systemu) , które znajdują się w Panelu sterowania pod ikoną systemu, zadaniem Zaawansowane ustawienia systemu, zakładką Zaawansowane, przyciskiem Środowisko.

Odnośnie InterfaceError: Unable to acquire Oracle environment handle , dzieje się tak w szczególności, gdy w przeciwieństwie do braku rozwiązania OCI.dll , cx_Oracle nie wie, którego OCI.dll użyć, zwykle dzieje się tak z powodu zmiennej PATH zawierającej dwa lub więcej katalogów wyszukiwania, które zawierają OCI.dll.

W szczególności upewnij się, że ścieżka PATH zawiera tylko jedną chwilę pliku OCI.dll z natychmiastowej instalacji klienta lub z instalacji Oracle 11G XE, która powinna rozwiązać Twój problem.

Czy odinstalowałeś natychmiastowego klienta przed instalacją Oracle 11G XE?

Wklej następujące elementy w wierszu polecenia.

echo The current ORACLE_HOME is %ORACLE_HOME%

echo The current TNS_ADMIN is %TNS_ADMIN%

echo The current PATH is %PATH%

Aby zobaczyć aktualną wartość tych zmiennych.

Inne zasoby



  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-12705:Nie można uzyskać dostępu do plików danych NLS lub nieprawidłowego środowiska

  2. Hibernacja + ograniczenie klauzuli Oracle IN, jak to rozwiązać?

  3. Jak stworzyć nową bazę danych w Oracle 11g express edition?

  4. Wyrocznia - Stół Zombie

  5. Oracle PL/SQL:Jak wydrukować typ tabeli