sql >> Base de Datos >  >> RDS >> Mysql

No se pueden devolver los resultados del procedimiento almacenado usando el cursor de Python

¿Has intentado elegir uno de los conjuntos de resultados?

for result in cursor.stored_results():
    people = result.fetchall()

Podría ser que esté asignando múltiples conjuntos de resultados aunque solo tenga uno SELECT sentencia Sé que en los procedimientos almacenados MySQLi de PHP, haga esto para permitir retornos de variables INOUT y OUT (que nuevamente, no tiene ninguno, pero tal vez esté asignando de todos modos).

El código completo que estoy usando (que funciona) es:

import mysql.connector

cnx = mysql.connector.connect(user='me',password='pw',host='localhost',database='mydb')
cnx._open_connection()
cursor = cnx.cursor()

cursor.callproc("getperson",[1])

for result in cursor.stored_results():
    people=result.fetchall()

for person in people:
    print person

cnx.close()