Schreiben Sie eine csv-Datei in SQL Server-Datenbank mithilfe von python
Hallo, ich bin beim schreiben einer csv-Datei in eine Tabelle in SQL Server-Datenbank mithilfe von python. Ich bin vor Fehler wenn ich die übergabe der Parameter , aber ich glaube nicht das Gesicht einer Fehlermeldung, wenn ich es manuell mache. Hier ist der code, den ich ausführen.
cur=cnxn.cursor() # Get the cursor
csv_data = csv.reader(file(Samplefile.csv')) # Read the csv
for rows in csv_data: # Iterate through csv
cur.execute("INSERT INTO MyTable(Col1,Col2,Col3,Col4) VALUES (?,?,?,?)",rows)
cnxn.commit()
Fehler :pyodbc.DataError: ('22001', '[22001] [Microsoft][ODBC SQL Server Driver][SQL Server]Zeichenfolgen-oder Binärdaten würden abgeschnitten werden. (8152) (SQLExecDirectW); [01000] [Microsoft][ODBC SQL Server Driver][SQL Server]Die Anweisung wurde beendet. (3621)')
Aber wenn ich legen Sie die Werte manuell ein. Es funktioniert gut
cur.execute("INSERT INTO MyTable(Col1,Col2,Col3,Col4) VALUES (?,?,?,?)",'A','B','C','D')
Ich habe sichergestellt, dass die TABELLE gibt es in der Datenbank, Datentypen konsistent mit den Daten, die ich übertrage. Verbindung und cursor sind auch richtig. Der Datentyp der Zeilen ist "Liste"
- Hat deine csv-Datei enthält die Spaltennamen in der ersten Zeile?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Darüber nachdenken, die Abfrage dynamisch, um sicherzustellen, dass die Zahl der Platzhalter passt Ihre Tabelle und CSV-Datei-format. Dann ist es nur eine Frage der sicherzustellen, dass Ihre Tabelle und CSV-Datei korrekt sind, statt zu überprüfen, die Sie eingegeben haben genug
?
Platzhalter im code.Dem folgenden Beispiel wird davon ausgegangen,
test.csv
MyTable
Wenn Spaltennamen sind nicht in der Datei enthalten:
Habe ich es aussortiert. Der Fehler wurde aufgrund der Größe in der Beschränkung die Beschränkung des Tisches. Es verändert die Spalte Kapazität wie von col1 varchar(10), col1 varchar(35) usw. Jetzt funktioniert ' s einwandfrei.
Können Sie die Spalten als Argumente. Zum Beispiel:
Können Sie auch importieren von Daten in SQL, indem Sie entweder:
Mehr details finden Sie auf dieser Webseite:
https://docs.microsoft.com/en-us/sql/relational-databases/import-export/import-data-from-excel-to-sql?view=sql-server-2017