Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

InterfaceError:Tidak dapat memperoleh pegangan lingkungan Oracle; ORACLE_HOME benar dan SQL*Plus akan terhubung

Versi Windows apa yang Anda jalankan? Apakah 32 atau 64 bit?

Apakah Klien Instan Oracle Anda 32 atau 64 sedikit ?

Apakah instalasi Python Anda 32 atau 64 sedikit ?

Apakah cx_Oracle Anda versi yang benar? 32 atau 64 sedikit ?

MSVCR90.dll adalah bagian dari paket Microsoft Visual C++ 2008 SP1 Redistributable.

Versi 32 bit tersedia di sini , versi 64 bit tersedia di sini .

IESHIMS.dll akan ditempatkan di C:\Program Files\Internet Explorer\Ieshims.dll (Lokasi Windows 32 bit atau Lokasi Windows 64 bit) atau C:\Program Files\Internet Explorer (x86)\Ieshims.dll` (Lokasi Windows 32 bit pada Windows 64 bit), jika versi Windows Anda adalah Vista atau yang lebih baru.

GPSVC.dll harus berada di C:\Windows\System32 .

Dependency Walker melaporkan 2 DLL terakhir ini sebagai hilang karena ada yang digunakan oleh Windows Error Reporting yang menggunakan IEFrame.DLL dan tertunda dimuat, yang berarti mereka mungkin tidak pernah benar-benar diperlukan.

Saya menemukan bahwa untuk mendapatkan cx_Oracle untuk mengimpor dengan bersih, Anda perlu memastikan bahwa versi dependensinya cocok. Anda juga perlu memastikan bahwa instalasi klien Oracle cocok dengan ORACLE_HOME Anda dan variabel PATH Anda berisi %ORACLE_HOME%/bin , yang ditetapkan sebagai variabel Lingkungan atau di registri, dan file tnsnames.ora Anda berada dalam nilai yang diatur ke TNS_ADMIN. Sebagaimana dinyatakan dalam Emmanuel jawaban, nilai default untuk pengaturan TNS_ADMIN yang tidak disetel adalah %ORACLE_HOME%\network\admin .

Saya juga jarang menggunakan versi klien instan dari penginstal Oracle kecuali benar-benar diperlukan karena tidak seperti versi lain yang tidak disetel, selalu pastikan Jalur yang disetel atau dipertahankan, ORACLE_HOME atau TNS_ADMIN dengan benar, yang menyebabkan tnsnames.ora dan OCI.dll tidak menjadi ditemukan. Ini menjadi lebih rumit ketika Anda memiliki beberapa versi Python atau versi Oracle pada mesin yang sama.

Untuk mengaturnya secara eksplisit, Anda dapat menggunakan Variabel Lingkungan (Pengguna atau Sistem) , yang berada di Panel Kontrol di bawah Ikon Sistem, tugas Pengaturan sistem lanjutan, Tab Tingkat Lanjut, tombol Lingkungan.

Mengenai InterfaceError: Unable to acquire Oracle environment handle , ini terjadi secara khusus ketika bertentangan dengan tidak menyelesaikan OCI.dll , cx_Oracle tidak tahu OCI.dll mana yang digunakan, biasanya ini terjadi karena variabel PATH berisi dua atau lebih direktori pencarian yang berisi OCI.dll.

Secara khusus memastikan PATH Anda hanya berisi satu instan OCI.dll baik dari instalasi klien instan atau instalasi Oracle 11G XE akan memperbaiki masalah Anda.

Apakah Anda menghapus klien instan sebelum menginstal Oracle 11G XE?

Rekatkan yang berikut ini di Command Prompt.

echo The current ORACLE_HOME is %ORACLE_HOME%

echo The current TNS_ADMIN is %TNS_ADMIN%

echo The current PATH is %PATH%

Untuk melihat nilai variabel ini saat ini.

Sumber daya lebih lanjut



  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 - pisahkan tanggal menjadi empat bagian

  2. Prosedur tersimpan Rencana eksekusi SQL

  3. Parameter tanggal PL/SQL dinamis dengan nilai waktu dipertahankan

  4. Nama kolom berulang dalam hasil kueri

  5. Refresh Cepat pada komitmen tampilan terwujud