您好,登錄后才能下訂單哦!
本篇文章為大家展示了怎么在Python中使用cx_Oracle模塊對Oracle數據庫進行操作,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
1. 下載cx_Oracle
Python一個官方網站PyPI,上面有豐富的模塊。cx_Oracle就可以在PyPI中下載。打開PyPI的網址https://pypi.python.org/pypi,在里面搜索cx_Oracle,即可找到該模塊,其下載地址為http://cx-oracle.sourceforge.net/。當然也可以通過其它的途徑下載。
下載之后就可以使用了。
2. 使用流程
簡單的使用流程如下:
①.引用模塊cx_Oracle
②.連接數據庫
③.獲取cursor
④.使用cursor進行各種操作
⑤.關閉cursor
⑥.關閉連接
下面是一個簡單的例子:
cx_Oracle.connect("用戶名 / 密碼@ Oracle服務器IP / Oracle的SERVICE_NAME")
獲得 Oracle的SERVICE_NAME:
su - oracle #切換至oracle用戶
env | grep ORACLE #查詢ORACLE的環境變量
ORACLE_SID=benguo # benguo就是SERVICE_NAME
import cx_Oracle #引用模塊cx_Oracle conn=cx_Oracle.connect('load/123456@localhost/ora11g') #連接數據庫 c=conn.cursor() #獲取cursor x=c.execute('select sysdate from dual') #使用cursor進行各種操作 x.fetchone() c.close() #關閉cursor conn.close() #關閉連接
例子:
#coding:utf-8 import cx_Oracle def main(): conn = cx_Oracle.connect("zebra/zebra@192.168.0.113/benguo") cur =conn.cursor() r= cur.execute("select * from userinfo") print print r.fetchone() if __name__ == '__main__': main()
3. 幾種用法
Python對數據庫的操作主要有2方面:一個是寫數據,一個是讀數據。這2個方面的實現可以通過SQL語句實現,也可以通過存儲過程實現。所以cx_Oracle的主要用法有:
①. 執行SQL語句
②. 調用存儲過程和函數。
4. 執行SQL語句
執行SQL語句很簡單,從上面的例子就可以看出。使用cursor.execute
即可執行。使用fetchone或fetchall即可將執行結果讀出來。
下面一個例子是Insert語句,使用的變量綁定。
import cx_Oracle conn=cx_Oracle.connect('load/123456@loaclhost/ora11g') c=conn.cursor() x=c.execute('insert into demo(v) values(:1)',['nice']) conn.commit(); c.close() conn.close()
變量綁定和Oracle的動態SQL一樣,都是冒號將占位符,即代碼中的:1,對變量的復制就是傳入一個List,即代碼中的['nice']。有多少個變量,list中就應該對應多少個值,數目要一致,否則會報錯。
執行之后,可以使用連接的一個方法connect.commit()
,將事務提交。
5. 調用存儲過程和方法
直接上代碼:
--存儲過程代碼: CREATE OR REPLACE PROCEDURE P_DEMO(V1 IN VARCHAR2, V2 OUT VARCHAR2) IS BEGIN V2 := V1; END;
#Python代碼: import cx_Oracle conn=cx_Oracle.connect('load/123456@localhost/ora11g') c=conn.cursor() str1='nice' str2=' '#需要有值,即len(str2)>=len(str1) x=c.callproc('p_demo',[str1,str2]) print(str2) c.close() conn.close()
調用存儲過程使用的是cursor.callproc
方法。上面的存儲過程中,一個變量的值是OUT型的,在Python中,對OUT型的變量賦值,主要該變量的長度不能小于存儲過程中的。
--函數代碼: CREATE OR REPLACE function F_DEMO(V1 VARCHAR2) RETURN VARCHAR2 IS BEGIN RETURN V1; END;
#Python代碼: import cx_Oracle conn=cx_Oracle.connect('load/123456@localhost/ora11g') c=conn.cursor() str1='nice' str2=c.callfunc('f_demo',cx_Oracle.STRING,[str1]) print(str2) c.close() conn.close()
調用函數使用的方法是cursor.callfunc
。這個與調用存儲過程不同之處在于,它需要指定傳輸參數的類型。
上述內容就是怎么在Python中使用cx_Oracle模塊對Oracle數據庫進行操作,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。