Mysql
 sql >> Database >  >> RDS >> Mysql

Impossibile restituire risultati dalla procedura memorizzata utilizzando il cursore Python

Hai provato a selezionare uno dei set di risultati?

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

Potrebbe essere l'allocazione per più set di risultati anche se hai solo un SELECT stmt. So che nelle procedure memorizzate MySQLi di PHP lo fanno per consentire i ritorni delle variabili INOUT e OUT (che di nuovo, non ne hai nessuno, ma forse sta comunque allocando).

Il codice completo che sto usando (che funziona) è:

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()