python連接oracle數據庫


在python連接oracle數據庫時走了不少彎路,主要是版本問題。下面記錄一下安裝時遇到的版本問題

pthon連接oracle需要先引入cx_Oracle模塊

1.從官網下載https://pypi.python.org/pypi/cx_Oracle 下載了一個7.0.0版本的安裝成功后, 在python環境下輸入import cx_Oracle校驗時發現報版本太高的錯

 

2.又從官網下載了一個cx_Oracle-5.3-11g.win32-py2.7.exe版本,發現還是報ORA-24315 --版本不一致

通過百度發現python版本位數 與cx_Oracle版本位數 與oracle客戶端版本位數 都要想一致。

  我的python版本2.7,32bit

  oracle是從oracle官網下載的http://www.oracle.com/technetwork/topics/winsoft-085727.html   instantclient-basic-win32-10.2.0.5.zip  --32位10.2的

  cx_Oracle版本cx_Oracle-5.1.2-10g.win32-py2.7.msi  --32位for 10g py2.7的

上述都安裝好后,進入oracle10g的目錄,復制oci,oraocci11,oraociei11的3個DLL粘貼到你的python安裝目錄的Libs/site-packages文件夾下面

 

3.上面工作做完,已經確保了版本都一樣,但是執行import cx_Oracle依然報ORA-24315 --版本不一致。

此時才發現我先后安裝了3個版本的cx_Oracle,那么讀取到的是不是就不是5.1.2-10g的版本了咧? 

從而我進入了cx_Oracle的安裝目錄 ,也就是python安裝目錄下的Lib\site-packages,刪除了cx_Oracle.pyd及7.0.0及5.3-11g版本的記錄,然后又重新打開cx_Oracle-5.1.2-10g.win32-py2.7.msi並安裝

 

4.在python環境輸入 

import cx_Oracle

conn=cx_Oracle.connect('username/password@host:port/SERVICE_NAME')

c=conn.cursor()               #獲取cursor()

x=c.execute('select * from merch_merchant')  #使用cursor()操作查詢

x.fetchone()                  #展示查詢結果,fetchone函數是獲得一行結果,fetchall函數是獲得所有行結果。均為元組

c.close()                  #關閉cursor()

conn.close()                #關閉數據庫連接

參考:https://www.cnblogs.com/Leo_wl/p/3288402.html

 

5.ok,總算連接成功,由此可見python除了大小寫敏感,對版本要求也相當高。

它連接數據庫應該調用的是本地的oracle客戶端, 在整個過程中與oracle服務端的版本並沒有關系。

另外網上提到的需要配置環境變量的,我並未配置,也連接成功了。


免責聲明!

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



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