Ich verwende die Snowflake Connector for Python (die die Unterstützung für die Python Database API v2-Spezifikation implementiert) in einem Skript, das eine Reihe von Datensätzen abruft aus einer Tabelle, iteriert über die Ergebnismenge und fragt für jede zurückgegebene Zeile eine andere Tabelle ab, die eventuell Ergebnisse liefert oder nicht.Python-Datenbank-API v2> Iteration über Ergebnismenge stoppt, wenn eine während der Iteration ausgeführte Abfrage keine Ergebnisse zurückgibt
Wenn für eine sekundäre Abfrage keine Ergebnisse zurückgegeben werden, wird die Iteration über die für die erste Abfrage zurückgegebenen Ergebnisse beendet, obwohl kein Fehler ausgegeben wird.
Der folgende Code demonstriert das Problem in Ich bin mit ...
cur = cnx.cursor()
foobars = cur.execute("SELECT * FROM foobar")
for foobar in foobars:
foobarId = foobar[0]
# Iteration over foobars stops if no records are returned for the following
foobaz = cur.execute("SELECT * FROM foobaz WHERE foobarId = %s", (foobarId))
if foobaz.rowcount != 0:
# Iterate over foobaz here
Wenn eine Ausnahme geworfen wurden, kann ich dieses Szenario behandelt durch den Fehler zu erfassen und auf das nächste Ergebnis weitergehen. Da keine Ausnahme ausgelöst wird, wie würde man dieses Szenario handhaben?
Ah! Ich hätte es merken sollen ... Danke für die Hilfe, Daniel! –