Rückgabewerte aus einer gespeicherten MySQL-Prozedur in Python mit MySQLdb

7

Ich habe eine gespeicherte Prozedur in einer MySQL-Datenbank, die einfach eine Datumsspalte aktualisiert und das vorherige Datum zurückgibt. Wenn ich diese gespeicherte Prozedur vom MySQL-Client aus aufrufe, funktioniert es gut, aber wenn ich versuche, die gespeicherte Prozedur von Python mit MySQLdb aufzurufen, kann ich nicht den Rückgabewert erhalten.

Hier ist der Code für die gespeicherte Prozedur:

%Vor%

Der Code, den ich verwende, um die gespeicherte Prozedur aufzurufen, sieht ähnlich aus:

%Vor%

Ich weiß, dass Sie IN- und OUT-Parameter verwenden können, aber was ich anhand der MySQLdb-Dokumentation feststellen kann, ist mit MySQLdb nicht möglich. Hat jemand eine Ahnung, wie ich die Ergebnisse der gespeicherten Prozedur bekommen konnte?

Wenn ich es aus einem SQL-Tool ausführen, ist hier die Ausgabe:

%Vor%

Wenn ich das Python-Skript ausführe, gibt es eine leere Menge zurück:

%Vor%     
m0j0 18.02.2009, 22:42
quelle

4 Antworten

11

Was ich tun musste, ist, den Python-Code zu ändern, um execute () anstelle von callproc () zu verwenden, und dann fetchone () zu verwenden, um die Ergebnisse zu erhalten. Ich beantworte es selbst, da die Antwort von mluebke nicht vollständig war (obwohl es hilfreich war!).

%Vor%

Dies gibt mir die richtige Ausgabe:

%Vor%     
m0j0 19.02.2009, 17:11
quelle
8

callproc funktioniert auch gut, Sie müssen execute nicht verwenden:

%Vor%     
Daniel C. Silverstein - cubes 19.06.2009 20:19
quelle
6

Sie müssen immer noch die Ergebnisse abrufen.

%Vor%

oder

%Vor%

usw.

    
mluebke 18.02.2009 23:05
quelle
0

Aus der API-Dokumentation für die MySQLdb -Bibliothek. Sie müssen cursor_obj.nextset() aufrufen, bevor die Ergebnismenge angezeigt wird, die von der gespeicherten Prozedur zurückgegeben wird. Dies liegt daran, dass der Aufruf der gespeicherten Prozedur eine Ergebnismenge erstellt. Die von der gespeicherten Prozedur zurückgegebenen Ergebnismengen folgen.

Weitere Informationen

    
G K 13.10.2013 04:53
quelle

Tags und Links