Je ne parviens pas à obtenir des données CSV dans une table Oracle.Chargement de csv dans une table dans Oracle
ERROR:
Traceback (most recent call last): File "H:/Standard_Procedures/Dataset_Management/Table_to_Oracle.py", line 139, in <module> sde_cursor.execute(insert_string,row) DatabaseError: ORA-01747: invalid user.table.column, table.column, or column specification
CODE:
with open(dataset) as f:
reader = csv.reader(f, delimiter=',')
column_string = ','.join(next(reader)).translate(None,'"')
insert_string='INSERT INTO {} ({}) VALUES ('.format(dataset_name, column_string)
val_list=[]
for i in range(1,len(first_row)+1):
val_list.append(':'+ str(i))
value_string=','.join(val_list)
insert_string += value_string + ')'
for row in reader:
print 'Insert String = {}'.format(insert_string)
print 'Row = {}'.format(row)
sde_cursor.execute(insert_string,row)
résultat de l'impression:
Insert String = INSERT INTO area_harvest_summary_20170629a (PERIOD, AN, PERIODWIDTH, ObjectID, TSA_UKEY, POLY_NUM, CLUSTER, FMU, Landbase, WATERSHED, COMPARTIMENT, PROPRIÉTÉ, ZONE, YC, Couverture, AgeAtHarvest, HarvestYear, Traitement, NewYc, PriConifer, PriDecid, IncConifère, IncDecid, ConiferPieceSize, DecidPieceSize) VALEURS (: 1,: 2,: 3,: 4,: 5,: 6, : 7,: 8,: 9,: 10,: 11,: 12,: 13,: 14,: 15,: 16,: 17,: 18,: 19,: 20,: 21,: 22,: 23 ,: 24,: 25)
Ligne = ['1', '10', '10', 'A14029867', '7025115', '851840750', 'A14010716', 'A14', 'CON', '480', 'A14-A ',' Northlan ',' 9.022459984 ',' 5 ',' C_Mx_Sw ',' 118 ',' 5 ',' Inten ',' 5 ',' 1718.527663 ',' 0 ',' 0 ',' 598.0849757 ', '0.371338338', '0.287112087']
J'ai essayé zip (ligne) et zip (ligne, val_list), mais il ne le fait pas non plus.Est-ce un problème avec le format chaîne de nombres dans Row? Si oui, comment puis-je contourner cela? J'ai aussi essayé certaines des méthodes que j'ai trouvées sur google, mais encore une fois, pas de chance.
Idéalement, je voudrais dans une déclaration d'exécution, mais tous les efforts de ce côté ne fonctionnent pas.
De l'erreur, il semblerait SQL est incorrect. Peut-être l'essayer dans SQL * Plus d'abord? –