Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

InterfaceError:Không thể có được xử lý môi trường Oracle; ORACLE_HOME đúng và SQL * Plus sẽ kết nối

Bạn đang chạy phiên bản Windows nào? Nó là 32 hay 64 bit?

Ứng dụng khách Oracle tức thì của bạn có phải là 32 không hoặc 64 bit?

Cài đặt Python của bạn có 32 không hoặc 64 bit?

Cx_oracle của bạn có phải là phiên bản chính xác? 32 hoặc 64 bit?

MSVCR90.dll là một phần của gói Microsoft Visual C ++ 2008 SP1 Redistributable.

Phiên bản 32 bit có sẵn tại đây , Phiên bản 64 bit có sẵn tại đây .

IESHIMS.dll sẽ được đặt trong C:\Program Files\Internet Explorer\Ieshims.dll (Vị trí Windows 32 bit hoặc Vị trí Windows 64 bit) hoặc C:\ Program Files \ Internet Explorer (x86) \ Ieshims.dll` (Vị trí Windows 32 bit trên Windows 64 bit), nếu phiên bản Windows của bạn là Vista hoặc mới hơn.

GPSVC.dll phải nằm trong C:\Windows\System32 .

Dependency Walker báo cáo 2 DLL cuối cùng này là bị thiếu vì có những tệp này được sử dụng bởi Báo cáo lỗi Windows sử dụng IEFrame.DLL và tải chậm, có nghĩa là chúng có thể không bao giờ thực sự cần thiết.

Tôi thấy rằng để cx_oracle nhập rõ ràng, bạn cần đảm bảo rằng các phiên bản phụ thuộc của nó khớp với nhau. Bạn cũng cần đảm bảo rằng cài đặt máy khách Oracle khớp với ORACLE_HOME của bạn và biến PATH của bạn chứa %ORACLE_HOME%/bin , được đặt làm biến Môi trường hoặc trong sổ đăng ký và tệp tnsnames.ora của bạn có giá trị TNS_ADMIN được đặt thành. Như đã nêu trong Emmanuel Câu trả lời là, giá trị mặc định cho cài đặt TNS_ADMIN chưa đặt là %ORACLE_HOME%\network\admin .

Tôi cũng hiếm khi sử dụng phiên bản ứng dụng khách tức thì của trình cài đặt oracle trừ khi thực sự cần thiết vì không giống như các phiên bản khác, nó không phải luôn đảm bảo được đặt hoặc duy trì Đường dẫn, ORACLE_HOME hoặc TNS_ADMIN một cách chính xác, dẫn đến tnsnames.ora và OCI.dll không được tìm. Điều này trở nên phức tạp hơn khi bạn có nhiều phiên bản Python hoặc phiên bản Oracle trên cùng một máy.

Để đặt chúng một cách rõ ràng, bạn có thể sử dụng Biến môi trường (Người dùng hoặc Hệ thống), nằm trong Bảng điều khiển bên dưới Biểu tượng hệ thống, tác vụ cài đặt hệ thống nâng cao, Tab nâng cao, nút Môi trường.

Về InterfaceError: Unable to acquire Oracle environment handle , điều này xảy ra đặc biệt khi trái ngược với việc không giải quyết OCI.dll, cx_Oracle không biết OCI.dll nào để sử dụng, thông thường đây là trường hợp do biến PATH chứa hai hoặc nhiều thư mục tìm kiếm có chứa OCI.dll.

Đặc biệt đảm bảo PATH của bạn chỉ chứa một tệp OCI.dll tức thì từ cài đặt ứng dụng khách tức thì hoặc cài đặt Oracle 11G XE sẽ khắc phục được sự cố của bạn.

Bạn đã gỡ cài đặt ứng dụng khách tức thì trước khi cài đặt Oracle 11G XE?

Dán phần sau vào Dấu nhắc lệnh.

echo The current ORACLE_HOME is %ORACLE_HOME%

echo The current TNS_ADMIN is %TNS_ADMIN%

echo The current PATH is %PATH%

Để xem giá trị hiện tại của các biến này.

Các tài nguyên khác



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle DELETE sql với JOIN không hoạt động

  2. làm thế nào để xác định phạm vi trong oracle

  3. Đặt thời gian chờ kết nối cơ sở dữ liệu Oracle 10g trong Java

  4. Phiên bản tùy chỉnh Oracle SessionStateStoreProviderBase

  5. Xử lý ExecuteScalar () khi không có kết quả nào được trả về