python3連接Oracle數據庫

今天有了Oracle環境,又搗鼓一遍怎麼連接,比上次有點收穫,上次比較順利,照着網上別人的博客基本就連接成功了,今天遇到了一些坑,當然這些坑的幫助也很大。

首先我安裝的python是3.7版本,32位。這個在cmd下輸入python就能看見。

連接Oracle比MySQL麻煩一些,如何連接MySQL,請點這裏

連接Oracle需要安裝cx_Oracle和oracle客戶端,由於我裝的python3.7版本,找cx_Oracle的時候發現別人博客裏的鏈接最高只能下載python3.6的cx_Oracle,我下載一個3.6的果然安裝失敗,網上也有那種報錯的解決方法,但是我覺得畢竟版本不一樣,不太想試。這情況讓我不禁懷疑人生,不會更新這麼慢吧,難道我還要等更新或者重新安裝python3.6?後來總算找到了最新的下載地址,感覺還不錯。下面直接從別處粘的。

Python一個官方網站PyPI,上面有豐富的模塊。cx_Oracle就可以在PyPI中下載。打開PyPI的網址https://pypi.python.org/pypi,在裏面搜索cx_Oracle,即可找到該模塊,其下載地址爲https://pypi.org/project/cx_Oracle/#files。當然也可以通過其它的途徑下載。

粘的時候第二個鏈接不對,我改了一下,不知道以後會不會再變,仔細看一下網頁,就能找到在哪下載了。

我是先根據python版本找的要下載哪個,看樣子還挺全的,Linux、win32、win64應該是都有,我直接下的win32。但是這個是.whl文件,又百度一下怎麼安裝.whl文件。

安裝這個得先在cmd下輸入:pip install wheel(如果報錯則輸入:pip.exe install wheel)。安裝完畢,還是在cmd裏,用dos命令找到cx_Oracle下載位置。下面放上dos進入路徑的命令用法。

大概就是這樣,然後繼續輸入安裝cx-Oracle的命令,注意:這命令是用來裝.whl文件的。

命令:pip install cx_Oracle-6.4.1-cp37-cp37m-win32.whl(如果報錯,則輸入:pip.exe install cx_Oracle-6.4.1-cp37-cp37m-win32.whl),其中“cx_Oracle-6.4.1-cp37-cp37m-win32.whl”是我的文件名。

下面情況就是安裝成功了:

現在完成了一半了,然後再下載Oracle客戶端,百度找instantclient就行了,這裏一定要確定好是下載32位的還是64位的,我之前有一個64位的,直接用總是報錯:cx_Oracle.DatabaseError: DPI-1047: 32-bit Oracle Client library cannot be loaded: "D:\instantclient_12_2\oci.dll is not the correct architecture"

這意思是要用32位的客戶端(我百度找答案的時候,別人都是提示讓下載64位的客戶端。。。)

重新找了一個32位的下載了,放到一個位置,然後配置環境變量,Path里加上路徑,像我這就加D:\instantclient_12_2就行了。廢了半天勁環境應該是好了,下面附上一段我用的代碼,部分內容隱藏。(如果還不行,請再根據問題百度)

import cx_Oracle
#連接數據庫,下面括號裏內容根據自己實際情況填寫
conn = cx_Oracle.connect('用戶名/密碼@IP:端口號/SERVICE_NAME')
# 使用cursor()方法獲取操作遊標
cursor = conn.cursor()
#使用execute方法執行SQL語句
result=cursor.execute('Select member_id from member')
#使用fetchone()方法獲取一條數據
#data=cursor.fetchone()

#獲取所有數據
all_data=cursor.fetchall()

#獲取部分數據,8條
#many_data=cursor.fetchmany(8)

print (all_data)
db.close()

工作中只是查詢會員號,然後驗證會員號,所以增刪改就沒寫,和MySQL差不多,應該能直接遷移,上面有連接MySQL的鏈接,那裏寫了MySQL的增刪改的代碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章