sql >> Databáze >  >> RDS >> Mysql

Nelze vrátit výsledky z uložené procedury pomocí kurzoru Pythonu

Zkusili jste vybrat jednu z výsledkových sad?

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

Je možné, že se přiděluje více sad výsledků, i když máte pouze jeden SELECT stmt. Vím, že uložené procedury MySQLi v PHP to dělají, aby umožnily návraty proměnných INOUT a OUT (z nichž opět nic nemáte, ale možná to stejně alokuje).

Kompletní kód, který používám (který funguje), je:

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. Jak převést IPv6 z binárního kódu pro úložiště v MySQL

  2. Jak vložit velké množství dat do databáze sqlite v systému Android

  3. Jak zachovat pořadí vkládání na SQL Server

  4. pgadmin4:aplikační server postgresql nelze kontaktovat.