一步步教你用python連接oracle數(shù)據(jù)庫
前言
在進(jìn)行數(shù)據(jù)庫連接之前,一般都需要導(dǎo)入依賴的庫,通過專門的庫去處理對(duì)應(yīng)的數(shù)據(jù)庫連接,所以沒安裝對(duì)應(yīng)的處理庫的話,需要先進(jìn)行安裝、再導(dǎo)入,導(dǎo)入后即可正常使用。
一、安裝cx_Oracle
pip install cx_Oracle
二、導(dǎo)入庫
代碼如下(示例):
import cx_Oracle
三、創(chuàng)建數(shù)據(jù)庫對(duì)象
對(duì)象 = cx_Oracle.connect('用戶名','密碼','IP地址:端口號(hào)/ORCL')
四、創(chuàng)建游標(biāo)對(duì)象
游標(biāo)對(duì)象 = 對(duì)象.cursor()
五、調(diào)用execute()方法執(zhí)行SQL語句
變量 = 游標(biāo)對(duì)象.execute(sql)
六、獲取被執(zhí)行的SQL查詢語句的值
變量.fetchall()
七、提交修改的數(shù)據(jù)
數(shù)據(jù)庫對(duì)象.commit()
八、操作完畢,關(guān)閉數(shù)據(jù)庫連接
游標(biāo)對(duì)象.close()
九、代碼示例
import cx_Oracle conn = cx_Oracle.connect('oracle','oracle','192.168.110.23:1521/ORCL') cursor = conn.cursor() print('連接數(shù)據(jù)庫成功!') sql = "select * from student" all = cursor.execute(sql) print(all.fetchall())
十、運(yùn)行結(jié)果
運(yùn)行時(shí),出現(xiàn)連接數(shù)據(jù)庫失敗:DatabaseError:DPI-1047
十一、解決連接失敗問題
1、查看Oracle的版本號(hào)
#linux下查詢 sqlplus / as sysdba select * from v$version;
2、進(jìn)入官網(wǎng),下載對(duì)應(yīng)Oracle版本
https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html
將下載的包解壓,添加到環(huán)境變量
下載cx_Oracle包:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhook
ctrl+f 搜索:cx_Oracle,進(jìn)入選擇匹配python版本的包
這里我的python版本是3.6 64位
cmd進(jìn)入下載cx_Oracle-8.1.0-cp36-cp36m-win_amd64.whl的目錄,以下是我本地目錄,應(yīng)修改成你自己的下載目錄
cd C:\Users\15101\Downloads
因?yàn)槲野惭b過,所以先卸載
pip uninstall cx_Oracle
接下來安裝最新下載的包
pip install cx_Oracle-8.1.0-cp36-cp36m-win_amd64.whl
打開oracle版本的解壓包,進(jìn)入解壓后的目錄,C:\work\instantclient-basic-windows.x64-12.2.0.1.0\instantclient_12_2(換成你本地的目錄,這里是我本地的),把所有的.dll文件全部拷貝到python的根目錄
拷貝到目錄如下
十二、調(diào)整后代碼示例
import cx_Oracle conn = cx_Oracle.connect('oracle','oracle','192.168.110.23:1521/ORCL') cursor = conn.cursor() print('連接數(shù)據(jù)庫成功!') sql = """ CREATE TABLE student ( id number primary key, name varchar2(30), age number )""" all = cursor.execute(sql) conn.commit()
使用navicat連接數(shù)據(jù)庫,可看到新增了一個(gè)student表
總結(jié)
在使用python連接時(shí),需要注意以下點(diǎn):
1、需要下載已安裝的oracle數(shù)據(jù)庫對(duì)應(yīng)的版本
2、需要下載與python版本對(duì)應(yīng)的cx_Oracle包
3、需要把oracle版本的ddl文件放置python安裝根目錄下
到此這篇關(guān)于用python連接oracle數(shù)據(jù)庫的文章就介紹到這了,更多相關(guān)python連接oracle數(shù)據(jù)庫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python連接oracle數(shù)據(jù)庫實(shí)例
- Python3.6連接Oracle數(shù)據(jù)庫的方法詳解
- Python編程實(shí)戰(zhàn)之Oracle數(shù)據(jù)庫操作示例
- Python操作Oracle數(shù)據(jù)庫的簡單方法和封裝類實(shí)例
- python鏈接Oracle數(shù)據(jù)庫的方法
- 利用Python連接Oracle數(shù)據(jù)庫的基本操作指南
- python實(shí)現(xiàn)與Oracle數(shù)據(jù)庫交互操作示例
- python連接oracle數(shù)據(jù)庫操作實(shí)例及遇到的異常
相關(guān)文章
10個(gè)易被忽視但應(yīng)掌握的Python基本用法
這篇文章主要介紹了10個(gè)易被忽視但應(yīng)掌握的Python基本用法,如字典推導(dǎo)、內(nèi)省工具等,主要針對(duì)Python3版本,需要的朋友可以參考下2015-04-04python實(shí)現(xiàn)域名系統(tǒng)(DNS)正向查詢的方法
這篇文章主要介紹了python實(shí)現(xiàn)域名系統(tǒng)(DNS)正向查詢的方法,結(jié)合實(shí)例形式分析了Python使用socket模塊下getaddrinfo方法進(jìn)行域名查詢的具體技巧,需要的朋友可以參考下2016-04-04詳解Windows下PyCharm安裝Numpy包及無法安裝問題解決方案
這篇文章主要介紹了詳解Windows下PyCharm安裝Numpy包及無法安裝問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06python 統(tǒng)計(jì)代碼耗時(shí)的幾種方法分享
本文實(shí)例講述了Python中統(tǒng)計(jì)代碼片段、函數(shù)運(yùn)行耗時(shí)的幾種方法,分享給大家,僅供參考。2021-04-04Python實(shí)現(xiàn)刪除文件中含“指定內(nèi)容”的行示例
這篇文章主要介紹了Python實(shí)現(xiàn)刪除文件中含“指定內(nèi)容”的行功能,涉及Python針對(duì)文件讀取及字符串遍歷、判斷等相關(guān)操作技巧,需要的朋友可以參考下2017-06-06