cx_Oracle是Python下與Oracle數(shù)據(jù)庫交互的重要模塊之一,它提供了連接Oracle數(shù)據(jù)庫并執(zhí)行SQL語句的函數(shù)和方法,能夠讓我們靈活便捷地操作Oracle數(shù)據(jù)庫。以下我將結(jié)合實際經(jīng)驗,詳細介紹如何使用cx_Oracle連接Oracle數(shù)據(jù)庫。
在使用cx_Oracle連接Oracle數(shù)據(jù)庫之前,需要安裝cx_Oracle模塊和Oracle客戶端。其中,cx_Oracle模塊可通過pip安裝,Oracle客戶端則需去Oracle官網(wǎng)下載安裝。
import cx_Oracle
conn = cx_Oracle.connect('用戶名/密碼@ip地址:端口號/oracle實例名') # 連接Oracle數(shù)據(jù)庫
上述程序代碼中,cx_Oracle.connect()函數(shù)的參數(shù)是一個字符串,使用“用戶名/密碼@ip地址:端口號/oracle實例名”的方式指定連接信息。例如:
conn = cx_Oracle.connect('SCOTT/tiger@192.168.0.100:1521/orcl')
說明:SCOTT為Oracle的用戶名,tiger為密碼,192.168.0.100為IP地址,1521為Oracle監(jiān)聽端口,orcl為Oracle實例名。
連接成功后,我們可以通過cursor()方法創(chuàng)建游標來執(zhí)行SQL語句,如下所示:
cursor = conn.cursor() # 創(chuàng)建游標
cursor.execute('SELECT * FROM TABLE') # 執(zhí)行SQL語句
在執(zhí)行select語句后,可以通過fetchone()、fetchall()、fetchmany()方法獲取查詢結(jié)果。例如:
result1 = cursor.fetchone() # 獲取一條記錄
result2 = cursor.fetchall() # 獲取所有記錄
result3 = cursor.fetchmany(5) # 獲取前5條記錄
除了查詢語句,我們還可以執(zhí)行插入、更新、刪除等操作,如下所示:
cursor.execute('INSERT INTO TABLE VALUES (?, ?, ?)', [1, 'hello', 'world']) # 插入數(shù)據(jù)
cursor.execute('UPDATE TABLE SET FIELD1 = ? WHERE FIELD2 = ?', ['hello', 1]) # 更新數(shù)據(jù)
cursor.execute('DELETE FROM TABLE WHERE FIELD1 = ?', ['hello']) # 刪除數(shù)據(jù)
conn.commit() # 提交事務(wù)
在執(zhí)行完所有操作后,不要忘記關(guān)閉游標和數(shù)據(jù)庫連接,如下所示:
cursor.close()
conn.close()
以上是使用cx_Oracle連接Oracle數(shù)據(jù)庫的基本操作,大家可以根據(jù)實際需求進一步深入學習和使用。同時,在代碼編寫過程中要注意異常處理,保證代碼的健壯性。