在Python中使用cx_Oracle來訪問Oracle

在Python中如果要訪問和操作Oracle數據庫,可使用cx_Oracle來實現。本文主要對cx_Oracle基本功能進行測試。

  1. 準備工作

    1. 安裝好Python,本例使用Python 2.7版本。

    2. 安裝本地Oracle客戶端,配置數據庫連接,本例使用Oracle 11g。

    3. 下載和安裝cx_Oracle

      下載地址:http://sourceforge.net/projects/cx-oracle/

      下載時注意Oracle數據庫版本及本地Python版本。下載後,直接安裝即可。

  2. 簡單查詢操作

    import cx_Oracle
    #創建數據庫連接
    conn = cx_Oracle.connect('dbuser/password@servername/sid')
    #獲取操作遊標
    cursor = conn.cursor()
    #執行查詢SQL,返回值1
    cursor.execute("""select 1 from dual""")
    #獲取返回結果一條記錄
    rs = cursor.fetchone()
    #執行完成,打印提示信息
    print 'result = %s'%rs
    result = 1
    
    #關閉連接,釋放資源
    cursor.close()
    conn.close()
  3. 執行DDL建表語句

    cursor.execute("""create table tmp_user(id number, name varchar2(20))""")
    print 'completed!'
  4. 執行DML插入記錄

    #插入一條記錄
    cursor.execute(
    """insert into tmp_user values(1,'admin')"""
    )
    
    #採用綁定變量方式插入一條記錄
    param = {'id':2, 'name':'system'}
    cursor.execute('insert into tmp_user values(:id, :name)',param)
    
    #一次插入多條數據,參數爲字典列表形式
    param=[{'id':3,'name':'John'},{'id':4,'name':'Mary'},{'id':5,'name':'Steven'}]
    
    cursor.executemany('insert into tmp_user values(:id,:name)',param)
    
    #再一次插入多條數據,參數爲元組列表形式
    param=[]
    for i in range(6,8): #[6,7]
        param.append((i,'user'+str(i)))
    
    cursor.executemany('insert into tmp_user values(:1,:2)',param)
    
    #提交事務
    conn.commit
  5. 查詢返回多條記錄的情況

    cursor.execute("""select * from tmp_user""")
    #獲取2條記錄
    r2 = cursor.fetchmany(2)
    print r2[0], r2[1]
    #獲取剩餘所有記錄
    rn = cursor.fetchall()
    for row in rn:
        print row
    #帶條件的查詢
    cursor.prepare("""select * from tmp_user where id>=:id""")
    cursor.execute(None,{'id':7}) #None注意大小寫
    for row in cursor:
        print row
  6. 執行調用存儲過程(見下篇)

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