Python的CX Oracle擴展模塊是一個非常強大的用于在Python中訪問Oracle數據庫的工具。它提供了一個簡單的接口來連接Oracle數據庫,并且可以使用基于Python的SQL語句與數據庫進行交互。
其中,最基本的用法是連接Oracle數據庫并執行SQL查詢。以下是一個簡單的示例,展示了如何連接Oracle并查詢姓名為“Bob”的用戶的信息:
import cx_Oracle conn = cx_Oracle.connect('username/password@localhost') cursor = conn.cursor() cursor.execute('SELECT * FROM users WHERE name=:1', ('Bob',)) results = cursor.fetchall() for row in results: print(row) cursor.close() conn.close()
在這個例子中,我們首先使用“cx_Oracle.connect”函數連接了本地的Oracle數據庫。我們使用的是基于服務名的連接方式。然后,我們創建了一個游標“cursor”來實現與數據庫的交互。
接著,我們執行了一個SQL查詢“SELECT * FROM users WHERE name=:1”,使用了占位符“:1”來代替查詢條件中的變量,這使得在執行查詢時可以將變量作為參數傳遞進去。在這里,我們將變量設為了“Bob”。
使用“cursor.fetchall()”我們可以從數據庫中檢索結果,并將其存儲在變量“results”中。最后,我們遍歷“results”并打印出每行的值。
除了查詢外,我們還可以使用CX Oracle模塊來執行更新、插入、刪除等操作。以下是一個例子,演示如何向數據庫中插入一條新的用戶記錄:
import cx_Oracle conn = cx_Oracle.connect('username/password@localhost') cursor = conn.cursor() cursor.execute('INSERT INTO users (name, age, email) VALUES (:1, :2, :3)', ('Alice', 25, 'alice@example.com')) conn.commit() cursor.close() conn.close()
在這個例子中,我們使用了“INSERT INTO”語句將一條新的用戶記錄插入到了數據庫中。我們將用戶的名字、年齡和電子郵件地址分別存儲為“:1”、“:2”和“:3”變量,并將它們傳遞給“execute”函數。
插入數據后要記得使用“conn.commit()”來提交更改。最后我們關閉了游標和連接。
CX Oracle還支持使用存儲過程,函數和游標等其他高級功能。它提供了以下函數,以方便用戶操作數據庫:
- “sessionpool”:連接池管理
- “autocommit”:控制自動提交模式(自動或手動)
- “fetchall”,“fetchmany”,“fetchone”:查詢結果獲取方式
- “callproc”:調用存儲過程
總體而言,CX Oracle是一個非常強大的Python擴展模塊,可以在Python中輕松地與Oracle數據庫進行交互。它提供了各種功能,從基本的查詢到高級的存儲過程和游標等,都可以輕松地使用。