生活随笔
收集整理的這篇文章主要介紹了
用Python操作Oracle
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Python作為一門易學易用且不失強大的語言, 國內外不乏用Python開發的從桌面系統到復雜大型系統的例子。但作為腳本語言中的一位著名代表,Python不僅可以用來取代Java、C++等系統 語言來開發復雜的大型系統,也可以被當作一種輔助工具用來做一些日常工作中的瑣碎的事情,比如備份、生成測試數據、日志分析等等。本文將通過一些簡單的例 子來演示如何使用Python來訪問Oracle進行基本操作。需要說明的是本文并不會嘗試對 Python 或Oracle進行全面的介紹或細致的講解,只是通過一些簡單實用的示例來,來演示如何使用Python操作Oracle。如果您希望深入了解請 Python及Python操作Oracle請參考本文最后給出的擴展閱讀材料。
1?、?運行環境搭建
首先安裝Python運行環境
下載地址:?http://www.activestate.com/activepython/downloads
選擇?2.6.x?版本下載?,?安裝略過。
安裝完成后在打開命令行?,?輸入?python?進入?Python?交互環境如下圖所示
經典的Hello World:在交互環境中輸入
>>>? print 'HELLO PYTHON'
回車后結果如下:
類似我們在Java中訪問數據庫,需要使用相應數據庫系統的 JDBC實現,Python中也有類似JDBC的一個統一接口,名為Python DB API,所以也需要相應的數據庫系統的實現。Oracle的實現叫做cx_Oracle,所以需要先安裝cx_Oracle
下載地址:?http://cx-oracle.sourceforge.net/
安裝略過,安裝完成后在Python交互環境中輸 入
import? cx_Oracle?? #?注 意大小寫
如下圖所示:
如果沒有報錯,證明安裝成功。到這一步所需要的環境已經安裝好 了。
其實Python 操作Oracle的流程與JDBC一樣,首先創建連接,再獲取游標對象,執行操作,獲取結果,最后關閉連接,下面將通過一些例子來說明這個過程。
2?、?操作示例
下面將通過一些實際例子來演示如何操作Oracle
示例一:創建一個表 tb_user:
在交互環境中輸入以下代碼:
Python代碼??
import?cx_Oracle?? ?? ?? ?? conn?=?cx_Oracle.connect('challenger/challenger@10.180.85.207/challenge')?? ?? ?? ?? cursor?=?conn.cursor()?? ?? ?? ?? cursor.execute()?? ?? ?? ?? cursor.close()?? ?? ?? ?? print?'Completed!'???
?
?
示例二:在?tb_user?、插入單條數 據、插入多條數據
新建一個名為insert.py的文件寫入以下內容:
Python代碼??
?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? import?cx_Oracle?? ?? conn?=?cx_Oracle.connect('challenger/challenger@10.180.85.207/challenge')?? ?? cursor?=?conn.cursor()?? ?? ??? ?? ?? ?? cursor.execute();?? ?? ?? ?? param={'id':2,'n':'admin','p':'password'}?? ?? cursor.execute('insert?into?tb_user?values(:id,:n,:p)',param);?? ?? ??? ?? ?? ?? param=[{'id':3,'n':'admin','p':'password'},{'id':4,'n':'admin','p':'password'},{'id':5,'n':'admin','p':'password'}];?? ?? cursor.executemany('insert?into?tb_user?values(:id,:n,:p)',param);?? ?? ??? ?? ?? ?? param=[];?? ?? ?? ?? for?i?in?range(6,11):??? ?? ??????????????param.append((i,'user'+str(i),'password'+str(i)))?? ?? ?? ?? cursor.executemany('insert?into?tb_user?values(:1,:2,:3)',param);?? ?? ??? ?? cursor.close();?? ?? ?? ?? conn.commit();?? ?? conn.close();??
?
保存后,打開命令行切換至insert.py所在目錄
輸入?:python insert.py?
運行插入數據腳本如下圖所示
以上代碼用了多種方式,共插入了10條數據,在sqlplus 中查看結果如下圖所示
示例三:查詢。
查詢和插入的流程基本類似,只是多了一個得到查詢結果的步驟, 新建search.py文件,內容如下:
Python代碼??
?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? import?cx_Oracle?? ?? conn?=?cx_Oracle.connect('challenger/challenger@10.180.85.207/challenge')?? ?? cursor?=?conn.cursor()?? ?? ?? ?? cursor.execute()?? ?? ??? ?? ?? ?? one?=?cursor.fetchone()?? ?? print?'1:?id:%s,name:%s,password:%s'%one;?? ?? ??? ?? ?? ?? two?=?cursor.fetchmany(2)??? ?? print?'2?and?3:',two[0],two[1]?? ?? ??? ?? ?? ?? three?=?cursor.fetchall();??? ?? for?row?in?three:?? ?? ??????????????print?row????? ?? ??????????????? ?? print?'條件查詢'?? ?? cursor.prepare()?? ?? cursor.execute(None,{'id':5})?? ?? for?row?in?cursor:???? ?? ??????????????print?row?? ?? cursor.close();?? ?? conn.close();??
?
運行search.py可以看到如下圖所示的結果
實際上所有的主流數據庫都有相應Python DB API的實現,如MySQL、PostgreSQL等,只需要安裝相應的軟件包即可,流程及操作接口都與cx_Oracle基本一致。
本文通過使用Python操作Oracle的基本 操作,如果您想對Python或用Python操作Oracle進行更進一步的了解,請看擴展閱讀。
總結
以上是生活随笔為你收集整理的用Python操作Oracle的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。