CX Oracle是Python語言的一個第三方模塊,可以通過它連接到Oracle數據庫,并對數據庫進行各種操作,包括查詢、新增、修改、刪除等操作。它的使用非常簡單,同時也非常靈活,支持各種復雜的SQL語句。
首先,我們需要安裝cx_Oracle模塊。可以在命令行中使用pip install cx_Oracle命令進行安裝。我們假定我們連接到的Oracle數據庫地址為192.168.1.1,端口號為1521,SID為orcl,用戶名為scott,密碼為tiger。
import cx_Oracle # 連接數據庫 conn = cx_Oracle.connect('scott/tiger@192.168.1.1:1521/orcl') # 執行SQL cur = conn.cursor() cur.execute('SELECT * FROM EMP') rows = cur.fetchall() print(rows) # 關閉連接 conn.close()
以上代碼建立了與Oracle數據庫的連接,執行了一個簡單的SQL查詢,然后將查詢結果打印出來,最后關閉了與數據庫的連接。
接下來,我們來看一些更加復雜的SQL操作,比如事務處理。
import cx_Oracle # 連接數據庫 conn = cx_Oracle.connect('scott/tiger@192.168.1.1:1521/orcl') try: # 開始事務 conn.begin() cur = conn.cursor() # 插入一條記錄 cur.execute("INSERT INTO EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES (1, 'SMITH', 'CLERK', 7902, '17-DEC-1980', 800, NULL, 20)") # 更新一條記錄 cur.execute("UPDATE EMP SET SAL = 1200 WHERE EMPNO = 1") # 提交事務 conn.commit() except: # 回滾事務 conn.rollback() finally: # 關閉連接 conn.close()
以上代碼演示了一個事務處理過程,包括插入一條記錄、更新一條記錄、提交事務和回滾事務。
CX Oracle還支持綁定變量,這樣可以避免一些SQL注入的安全問題。
import cx_Oracle # 連接數據庫 conn = cx_Oracle.connect('scott/tiger@192.168.1.1:1521/orcl') try: # 開始事務 conn.begin() cur = conn.cursor() # 插入一條記錄 cur.execute("INSERT INTO EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES (:1, :2, :3, :4, :5, :6, :7, :8)", (2, 'ALLEN', 'SALESMAN', 7698, '20-FEB-1981', 1600, 300, 30)) # 更新一條記錄 cur.execute("UPDATE EMP SET SAL = :1 WHERE EMPNO = :2", (2000, 2)) # 提交事務 conn.commit() except: # 回滾事務 conn.rollback() finally: # 關閉連接 conn.close()
以上代碼演示了如何綁定變量來執行SQL操作,從而避免SQL注入的安全問題。
總而言之,CX Oracle是Python語言連接Oracle數據庫最常用的第三方模塊之一,可以通過它來進行各種復雜的SQL操作。