Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Nie można zwrócić wyników z procedury składowanej za pomocą kursora Pythona

Czy próbowałeś wybrać jeden z zestawów wyników?

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

Możliwe, że alokuje dla wielu zestawów wyników, nawet jeśli masz tylko jeden SELECT św. Wiem, że w procedurach składowanych MySQLi PHP robię to, aby umożliwić zwracanie zmiennych INOUT i OUT (które znowu nie masz, ale może i tak są alokowane).

Kompletny kod, którego używam (który działa) to:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 15 przydatnych wskazówek dotyczących dostrajania i optymalizacji wydajności MySQL/MariaDB

  2. Jak przekonwertować datetime na UTC w MySQL

  3. Używanie Pythona i MySQL w procesie ETL

  4. Czy istnieje odpowiednik SQLite do DESCRIBE [tabela] MySQL?

  5. Połącz się zdalnie z MySQL