Legen Sie in oracle-Tabelle aus CSV mittels python
Ich lese eine csv-Datei mit 5 Spalten und push-to-oracle-Tabelle
Ich weiß, es gibt viele Ressourcen auf dieser .. Aber auch dann bin ich nicht in der Lage, eine Lösung zu finden für mein problem
Code zum Lesen der CSV-python :
import csv
reader = csv.reader(open("sample.csv","r"))
lines=[]
for line in reader:
lines.append(line)
print lines
Ausgabe :
[['Firstname', 'LastName', 'email', 'Course_name', 'status'],
['Kristina', 'Bohn', '[email protected]', 'Anleitung zum
Capnography in das Management des Kritisch Kranken Patienten (CE)',
'Registriert'], ['Peggy', 'Lutz', '[email protected]',
"Leitfaden für die Überwachung EtCO2 Während der Opioid-Lieferung (CE)', 'In
Fortschritt"]]
Code drücken Sie die Liste auf Oracle-Tabelle :
import cx_Oracle
con = cx_Oracle.connect('username/password@tamans*****vd/Servicename')
ver=con.version.split(".")
print(ver)
cur=con.cursor()
cur.execute("INSERT INTO TEST_CSODUPLOAD ('FIRSTNAME','LASTNAME','EMAIL','COURSE_NAME','STATUS') VALUES(:1,:2,:3,:4,:5)",lines)
con.commit ()
cur.close()
Bin ich immer die Fehlermeldung :
DatabaseError: ORA-01484: arrays können nur gebunden werden, um PL/SQL-Anweisungen
Mir bitte helfen das Problem zu lösen vielen Dank im Voraus
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass Sie versuchen, übergeben Sie ein array an einer einzelnen insert-Anweisung. Sie haben hier zwei Optionen:
1) Verwenden Sie eine Schleife einfügen, die jede Zeile separat:
2) cursor Verwenden.executemany() statt, um ein array einfügen
Die zweite option ist effizienter, aber Sie müssen sicherstellen, dass die Art der Daten ist konsistent für jede Zeile. Wenn Sie eine Zahl in eine Zeile und eine Zeichenfolge in der nächsten Zeile wird ein Fehler ausgelöst.
Den Dokumentation gibt mehr detail.
Danke für Eure Antworten 🙂
Das Problem habe gelöst werden, wenn ich geändert
von
zu
Dieser Fehler bedeutet, dass das, was er sagte hier
Können Sie auch dump in eine sql-Datei und führen Sie es aus.