Python連接Oracle


前言

在寫一個腳本用於查詢Oracle數據做一些監控,最開始以為和mysql一樣簡單,結果弄了兩個小時沒弄好

主要遇到的問題

anaconda下載的依賴cx_Oracle不能在代碼里面引用

在conda環境下載了cx_Oracle依賴,結果在代碼中引用一直報紅線,並且運行代碼找不到cx_Oracle模塊

創建venv環境並使用pip3來下載依賴遇到的問題(這個可能只是我的電腦上會出現的問題)

在conda環境反復嘗試很多次之后,放棄了使用conda來下載依賴,轉而使用venv環境,並使用venv下面的pip3來下載
cx_Oracle,結果下載的時候報錯,報錯內容找不到了,我記得是缺少Microsoft Visual C++ Build Tools工具,因此網上找了
下載安裝即可

下載地址:
https://devblogs.microsoft.com/python/unable-to-find-vcvarsall-bat/

Oracle Client版本不對

連接Oracle比Mysql繁瑣之處就在這里,需要引用本地的Oracle客戶端,這個客戶端是Oracle官方提供的一個客戶端,我認為可以理解為一個
驅動包,在navicat for oracle的安裝包下面就有這個,也可以自行下載,需要注意的是下載正確版本的客戶端(主要是oracle client和python cx_Oracle依賴的版本要一致),最開始我下載的是64位
客戶端,然后就報錯:Python cx_Oracle error “DPI-1047: Cannot locate a 32-bit Oracle Client”

於是重新下載一個32位的客戶端,下載地址:
https://www.oracle.com/database/technologies/instant-client/microsoft-windows-32-downloads.html

參考文章

https://stackoverflow.com/questions/57250111/python-cx-oracle-error-dpi-1047-cannot-locate-a-32-bit-oracle-client
https://blog.csdn.net/bbhdeal/article/details/81144783


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM