日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

用Python操作Oracle

發布時間:2025/6/15 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用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()??
  • ??
  • #執行SQL,創建一個表??
  • ??
  • cursor.execute("""create?table?tb_user(id?number,?name?varchar2(50),password?varchar(50),primary?key(id))?""")??
  • ??
  • #關閉連接,釋放資源??
  • ??
  • cursor.close()??
  • ??
  • #執行完成,打印提示信息??
  • ??
  • print?'Completed!'???
  • ?

    ?

    示例二:在?tb_user?、插入單條數 據、插入多條數據

    新建一個名為insert.py的文件寫入以下內容:


    Python代碼??
  • #!/usr/bin/env?python??
  • ??
  • #?-*-?coding:utf-8?-*-??
  • ??
  • ###################################??
  • ??
  • #?@author?migle??
  • ??
  • #?@date?2010-05-17??
  • ??
  • ##################################??
  • ??
  • #在Oracle插入數據??
  • ??
  • #??
  • ??
  • ##################################??
  • ??
  • import?cx_Oracle??
  • ??
  • conn?=?cx_Oracle.connect('challenger/challenger@10.180.85.207/challenge')??
  • ??
  • cursor?=?conn.cursor()??
  • ??
  • ???
  • ??
  • #插入一條記錄??
  • ??
  • cursor.execute("""insert?into?tb_user?values(1,'admin','password')""");??
  • ??
  • #再插入一條數據??
  • ??
  • 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=[];??
  • ??
  • #生成5條插入數據,參數為元組列表形式??
  • ??
  • for?i?in?range(6,11):?#?[6,7,8,9,10]??
  • ??
  • ??????????????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代碼??
  • #!/usr/bin/env?python??
  • ??
  • #?-*-?coding:utf-8?-*-??
  • ??
  • ###################################??
  • ??
  • #?@author?migle??
  • ??
  • #?@date?2010-05-17??
  • ??
  • ##################################??
  • ??
  • #在Oracle中查詢數據??
  • ??
  • #??
  • ??
  • ##################################??
  • ??
  • import?cx_Oracle??
  • ??
  • conn?=?cx_Oracle.connect('challenger/challenger@10.180.85.207/challenge')??
  • ??
  • cursor?=?conn.cursor()??
  • ??
  • #執行查詢?語句??
  • ??
  • cursor.execute("""select?*?from?tb_user""")??
  • ??
  • ???
  • ??
  • #獲取一條記錄??
  • ??
  • 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("""select?*?from?tb_user?where?id?<=?:id""")??
  • ??
  • cursor.execute(None,{'id':5})??
  • ??
  • for?row?in?cursor:??#相當于fetchall()??
  • ??
  • ??????????????print?row??
  • ??
  • cursor.close();??
  • ??
  • conn.close();??
  • ?

    運行search.py可以看到如下圖所示的結果

    實際上所有的主流數據庫都有相應Python DB API的實現,如MySQL、PostgreSQL等,只需要安裝相應的軟件包即可,流程及操作接口都與cx_Oracle基本一致。

    本文通過使用Python操作Oracle的基本 操作,如果您想對Python或用Python操作Oracle進行更進一步的了解,請看擴展閱讀。

    總結

    以上是生活随笔為你收集整理的用Python操作Oracle的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。