MySQL Connector/Python 發行說明
語法
result_args = cursor.callproc(proc_name, args=())
此方法會呼叫由 proc_name
引數命名的預存程序。參數的 args
序列必須包含程序預期接收的每個引數的項目。callproc()
會傳回輸入序列的修改副本。輸入參數保持不變。輸出和輸入/輸出參數可能會被新值取代。
預存程序產生的結果集會自動擷取並儲存為 MySQLCursorBuffered 執行個體。如需有關使用這些結果集的更多資訊,請參閱 stored_results()
。
假設一個預存程序採用兩個參數,將這些值相乘,並傳回乘積
CREATE PROCEDURE multiply(IN pFac1 INT, IN pFac2 INT, OUT pProd INT)
BEGIN
SET pProd := pFac1 * pFac2;
END;
以下範例顯示如何執行 multiply()
程序
>>> args = (5, 6, 0) # 0 is to hold value of the OUT parameter pProd
>>> cursor.callproc('multiply', args)
('5', '6', 30L)
Connector/Python 1.2.1 及更新版本允許指定參數類型。若要執行此操作,請將參數指定為由參數值和類型組成的雙項目元組。假設程序 sp1()
具有以下定義
CREATE PROCEDURE sp1(IN pStr1 VARCHAR(20), IN pStr2 VARCHAR(20),
OUT pConCat VARCHAR(100))
BEGIN
SET pConCat := CONCAT(pStr1, pStr2);
END;
若要從 Connector/Python 執行此程序,並指定 OUT
參數的類型,請執行此操作
args = ('ham', 'eggs', (0, 'CHAR'))
result_args = cursor.callproc('sp1', args)
print(result_args[2])