Python使用cx_Oracle模組操作Oracle資料庫詳解
這篇文章主要介紹了Python使用cx_Oracle模組操作Oracle資料庫,結a合實例形式較為詳細的分析了cx_Oracle模組的下載、安裝及針對Orcle資料庫的連接、執行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
#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型的變數賦值,主要該變數的長度不能小於預存程序中的。
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>--函数代码:
CREATE OR REPLACE function F_DEMO(V1 VARCHAR2) RETURN VARCHAR2 IS
BEGIN
RETURN V1;
END;</pre><div class="contentsignin">登入後複製</div></div>
。這與呼叫預存程序不同之處在於,它需要指定傳輸參數的類型。 結束 python使用openpyxl庫修改excel表格資料方法 # 以上是Python使用cx_Oracle模組操作Oracle資料庫詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!#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()

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

Oracle不僅是數據庫公司,還是雲計算和ERP系統的領導者。 1.Oracle提供從數據庫到雲服務和ERP系統的全面解決方案。 2.OracleCloud挑戰AWS和Azure,提供IaaS、PaaS和SaaS服務。 3.Oracle的ERP系統如E-BusinessSuite和FusionApplications幫助企業優化運營。

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。

Python更易學且易用,C 則更強大但複雜。 1.Python語法簡潔,適合初學者,動態類型和自動內存管理使其易用,但可能導致運行時錯誤。 2.C 提供低級控制和高級特性,適合高性能應用,但學習門檻高,需手動管理內存和類型安全。
