mysqlclient执行存储过程获取输出参数
使用mysqlclient执行存储过程时,按正常的方法无法获取输出参数。使用如下方法获取:
conn = MySQLdb.connect(**self.settings)
cursor = conn.cursor()
args = ('in', 'in', 'out') # 两个输入参数,一个输出参数
cursor.callproc(procedure_name, args)
print(cursor.fetchall()) # 获取存储过程中的查询结果,当有多个查询结果时使用cursor.nextset()获取
# print(cursor.nextset())
# 查询参数值,格式:@_procedure_name_传入参数时参数的位置
cursor.execute(f"select @_{procedure_name}_0, @_{procedure_name}_1, @_{procedure_name}_2")
print(cursor.fetchall())
cursor.close()
conn.close()
参考:

浙公网安备 33010602011771号