創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!
為滎陽等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及滎陽網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為網(wǎng)站制作、網(wǎng)站建設、滎陽網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!Python MySQL callproc調(diào)用數(shù)據(jù)庫存儲過程?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
MySQL數(shù)據(jù)庫模塊為游標對象提供了一個非標準的 callproc(self, procname, args=()) 方法,該方法用于調(diào)用數(shù)據(jù)庫存儲過程。
callproc方法的procname參數(shù)代表存儲過程的名字,而 args 參數(shù)則用于為存儲過程傳入?yún)?shù)。
下面的 SQL 腳本可以在 MySQL 數(shù)據(jù)庫中創(chuàng)建一個簡單的存儲過程。打開 MySQL 的命令行客戶端,連接 python 數(shù)據(jù)庫之后,輸入如下 SQL 腳本來創(chuàng)建存儲過程:
delimiter // create procedure add pro(a int, b int, out sum int) begin set sum = a + b; end; //
下面程序示范了使用 MySQL 數(shù)據(jù)庫模塊來調(diào)用存儲過程:
# 導入訪問MySQL的模塊 import mysql.connector # ①、連接數(shù)據(jù)庫 conn = conn = mysql.connector.connect(user='root', password='32147', host='localhost', port='3306', database='python', use_unicode=True) # ②、獲取游標 c = conn.cursor() # ③、調(diào)用callproc()方法執(zhí)行存儲過程 # 雖然add_pro存儲過程需要3個參數(shù),但最后一個參數(shù)是傳出參數(shù), # 因此程序不會用它的值 result_args = c.callproc('add_pro', (5, 6, 0)) # 返回的result_args既包含了傳入?yún)?shù)的值,也包含了傳出參數(shù)的值 print(result_args) # 如果只想訪問傳出參數(shù)的值,可直接訪問result_args的第3個元素,如下代碼 print(result_args[2]) # ④、關閉游標 c.close() # ⑤、關閉連接 conn.close()
上面程序中,第 13 行代碼就是調(diào)用存儲過程的關鍵代碼。使用 MySQL 數(shù)據(jù)庫模塊調(diào)用存儲過程非常簡單,存儲過程需要幾個參數(shù),程序通過 callproc() 方法調(diào)用存儲過程時就傳入一個包含幾個元素的元組;對于存儲過程的傳入?yún)?shù),該參數(shù)對應的元組元素負責為傳入?yún)?shù)傳值;對于存儲過程的傳出參數(shù),該參數(shù)對應的元組元素隨便定義即可。
運行上面的程序,可以看到如下輸出結果:
(5, 6, 11) 11
從上面的輸出結果來看,當程序使用 Python 調(diào)用存儲過程后,程序會返回傳入?yún)?shù)和傳出參數(shù)組成的元組,如第一行輸出結果所示。如果程序只需要獲取傳出參數(shù)的值,則通過返回的結果元組取出對應的值即可。
關于Python MySQL callproc調(diào)用數(shù)據(jù)庫存儲過程問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道了解更多相關知識。