So habe ich eine gespeicherte Prozedur auf einem lokalen SQL Server, das mehrere Datensätze/Tabellen gibtPandas IO SQL und gespeicherte Prozeduren mit mehreren Ergebnismengen
Normalerweise in Python/Pyodbc würde ich
cursor.nextset()
subset1 = cursor.fetchall()
cursor.nextset()
subset2 = cursor.fetchall()
Ich möchte die ps.io.sql.read_sql verwenden und die gespeicherte Prozedur mit mehreren Ergebnismengen in Datenrahmen zurückgeben, aber ich kann nichts finden, das darauf verweist, wie man den Cursor bewegt und mehr Informationen erhält, bevor man die Dinge schließt .
import pandas as ps
query = "execute raw.GetDetails @someParam = '118'"
conn = myConnection() #connection,cursor
results = ps.io.sql.read_sql(query, con=conn[0])
results.head()
conn[1].close()
Während dies funktionieren sollte, führt es eine sqlalchemy-Abhängigkeit ein und scheint auch auf einen mysql-Server zu verweisen. – Mdev
'sqlalchemy' ist für den Import von Daten in Pandas in der üblichen Weise erforderlich (http://pandas.pydata.org/pandas-docs/stable/io.html#sql-queries), also nicht einfach nur mit der Datenbank verbinden Für mehrere Ergebnismengen wird es für die meisten Leute sinnvoll sein, einfach 'sqlalchemy' zu verwenden. Es sollte jedoch trivial sein, die Methodik in dieser Antwort mit einer anderen Verbindungsmethode zur Datenbank zu verwenden. Bezüglich "Referenzieren eines MySQL-Servers", siehe http://docs.sqlalchemy.org/en/latest/core/engines.html#database-urls. –