中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Python中使用cx_Oracle模塊對Oracle數據庫進行操作

發布時間:2021-03-17 16:32:34 來源:億速云 閱讀:426 作者:Leah 欄目:開發技術

本篇文章為大家展示了怎么在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數據庫進行操作,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

五台县| 昆山市| 西峡县| 宜川县| 崇左市| 乐平市| 临邑县| 瓦房店市| 霍山县| 静宁县| 太湖县| 滦南县| 古蔺县| 游戏| 铜鼓县| 轮台县| 娄烦县| 水城县| 伊吾县| 青铜峡市| 正蓝旗| 曲周县| 黄山市| 大田县| 淅川县| 永新县| 丹棱县| 宣汉县| 菏泽市| 裕民县| 聂荣县| 什邡市| 无锡市| 中宁县| 漯河市| 台北县| 蓬莱市| 德保县| 吕梁市| 崇阳县| 吐鲁番市|