一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python使用cx_Oracle模塊操作Oracle數據庫詳解

Python使用cx_Oracle模塊操作Oracle數據庫詳解

2021-02-18 00:48my2010sam Python

這篇文章主要介紹了Python使用cx_Oracle模塊操作Oracle數據庫,結合實例形式較為詳細的分析了cx_Oracle模塊的下載、安裝及針對Oracle數據庫的連接、執行SQL語句、存儲過程等相關操作技巧,需要的朋友可以參考下

本文實例講述了Python使用cx_Oracle模塊操作Oracle數據庫。分享給大家供大家參考,具體如下:

ORACLE_SID參數,這個參數是操作系統中用到的,它是描述我們要默認連接的數據庫實例,對于一個機器上有多個實例的情況下,要修改后才能通過 conn / as sysdba連接,因為這里用到了默認的實例名。

簡而言之,打個比方,你的名字叫小明,但是你有很多外號。你父母叫你小明,但是朋友都叫你的外號。

這里你的父母就是oracle實例,小明就是sid,service name就是你的外號。

sid用于實例區分各個數據庫,service name用于外部鏈接。 它們可能是不同的,要注意你得到的是哪個名字,合理使用,否則遠程連接別的數據庫可能出錯。

前言

Python自帶的模塊中有很多操縱文件的。我們可以把文件的數據讀出來,經過處理還可以將數據寫入文件中。但是對于數據的管理和分析來說,數據庫還是專業一些。如果Python能和數據庫結合在一起,那么就能結合兩種的優勢,提高效率。

工作中使用的是Oracle數據庫,Python有一個模塊cx_Oracle可以與Oracle相連。要使用cx_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

?
1
2
3
4
5
6
7
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()                       #關閉連接

例子:

?
1
2
3
4
5
6
7
8
9
10
#coding:utf-8
import cx_Oracle
def main():
  conn = cx_Oracle.connect("zebra/[email protected]/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語句,使用的變量綁定。

?
1
2
3
4
5
6
7
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. 調用存儲過程和方法

直接上代碼:

?
1
2
3
4
5
--存儲過程代碼:
CREATE OR REPLACE PROCEDURE P_DEMO(V1 IN VARCHAR2, V2 OUT VARCHAR2) IS
BEGIN
  V2 := V1;
END;
?
1
2
3
4
5
6
7
8
9
10
#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型的變量賦值,主要該變量的長度不能小于存儲過程中的。

?
1
2
3
4
5
--函數代碼:
CREATE OR REPLACE function F_DEMO(V1 VARCHAR2) RETURN VARCHAR2 IS
BEGIN
  RETURN V1;
END;
?
1
2
3
4
5
6
7
8
9
#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。這個與調用存儲過程不同之處在于,它需要指定傳輸參數的類型。

結束

通過cx_Oracle,可以是Python與Oracle數據庫相互溝通,這樣兩者就可以長處互補。

比如,可以將Python當成一個數據收集的工具,可以從Web,從文件中獲取數據,然后將這些數據保存到Oracle數據庫中,在Oracle數據庫上進行數據的進一步分析。

希望本文所述對大家Python程序設計有所幫助。

原文鏈接:https://blog.csdn.net/my2010Sam/article/details/20724001

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 门房秦大爷在线阅读 | 晓雪老师我要进你里面好爽 | 国产精品青青青高清在线观看 | 日韩欧美亚洲一区二区综合 | 国产欧美国产综合第一区 | 极品妖艳许清赵丽全文免费阅读 | 喘息揉弄1v1h老师 | 我被男人下药添得好爽 | 国产黄频在线观看高清免费 | 激情影院免费观看 | 国内偷拍第一页 | 紧身牛仔裤美女被啪啪久久网 | 国产成人精品系列在线观看 | 国语视频高清在线观看 | 久久国产精品永久免费网站 | 久久久伊人影院 | 金牛网155755水心论坛黄大父母 | 成人在线免费播放 | 精品欧美小视频在线观看 | 性xxxx18学生第一次出血 | 日本免费一区二区三区 | 国产大秀视频 | 草莓在线| 精品在线免费观看 | 午夜理论片YY4399影院 | 美女扒开肌肌让男人桶 | 日本道三区播放区 | 天美传媒影视在线免费观看 | 武侠古典久久亚洲精品 | 成年女人毛片免费观看中文w | 5g在线观看 | 很黄的孕妇a级黄毛片 | 性色AV一区二区三区V视界影院 | 久久精品一区二区三区资源网 | 九九在线免费视频 | 免费看打屁股视频的软件 | 日本男女视频 | 青青青国产精品国产精品美女 | 欧美大片一级片 | 四虎影院观看 | 爱爱亚洲|