Ich schreibe ein Python-Skript, das einige Textdateien verarbeiten wird. Als Teil dieses Prozesses muss ich jede Zeile der durch Tabulator getrennten Datei in eine lokale MS SQL Server (2008) -Tabelle importieren. Ich benutze pyodbc und ich weiß, wie das geht. Ich habe jedoch eine Frage über den besten Weg, es auszuführen.Importieren einer Textdatei in SQL Server in Python
Ich werde durch die Datei durchlaufen, Erstellen eines Cursors.execute (myInsertSQL) für jede Zeile der Datei. Sieht jemand Probleme, die darauf warten, die Anweisungen zu committen, bis alle Datensätze geloopt wurden (d. H. Das commit() nach der Schleife und nicht innerhalb der Schleife nach jeder einzelnen Ausführung)? Der Grund, warum ich frage, ist, dass einige Dateien mehr als 5000 Zeilen haben werden. Ich wusste nicht, ob der Versuch, "sie zu retten" und alle 5000 gleichzeitig zu begehen, Probleme verursachen würde.
Ich bin ziemlich neu zu Python, so dass ich alle diese Probleme noch nicht kenne.
Danke.
"Ich wusste nicht, ob ich versuche, sie zu retten" und alle 5000 auf einmal zu begehen würde Probleme verursachen. " Welche Art von "Problemen" stellst du dir vor? Hast du es versucht? Was hat es getan? Das Verschieben des Commits von der Schleife in das Ende der Schleife ist eine so triviale Änderung, dass Sie beide einfach ausführen und das Gelernte einbeziehen können. –
Ich habe es mit kleineren Sets ausprobiert und hatte kein Problem. Meine Sorge war nicht, dass es nicht funktionieren würde, wenn ich testen würde, aber vielleicht, wenn es eine Decke gäbe, auf die ich achten sollte. Die Dateien variieren in der Größe und können über 5000 gehen. Das Skript, das ich schreibe, wird als Teil eines Zeitplan-Stapels ausgeführt, der in Produktion geht, und ich versuche nur sicherzustellen, dass ich keine Probleme bekomme, indem ich etwas tue, was nicht ist empfohlen. –
Stellt die Python-Schnittstelle zu sqlserver eine '.executemany' Methode zur Verfügung? –