Ich muss alle Spaltennamen und Typen aus einer Oracle-Datenbank abrufen, und dann abhängig von einem Spaltentyp verschiedene Dinge tun.Andere Sortierreihenfolge in Dictionay und Liste
Mein Code ist:
for tab in table_list:
tables = {}#tabel list
table_types = {} #for each table dictionary column_name: type
cur.execute("select column_name, data_type from all_tab_cols where owner = 'AAA' and table_name = '"+tab+"' and hidden_column = 'NO' order by column_id asc")
res = cur.fetchall()
for type in res:
table_types[type[0]] = type[1]
tables[tab]=table_types
print res
print table_types
Für res
erhalte ich:
[('COAG_ID', 'NUMBER'), ('COAG_CONT_ID', 'NUMBER'), ('COAG_CONT_OPER_ID', 'NUMBER'), ('COAG_CAGT_ID', 'NUMBER'), etc...
Und für table_types
i erhalten:
{'COAG_DELIVERY_PAYER': 'VARCHAR2', 'COAG_AGREEMENT_DATE': 'DATE', 'COAG_HANDSET_FULL_PRICE': 'NUMBER', etc...
Meine Frage ist: Warum sind nicht die Werte in der gleichen Reihenfolge? Werte in table_types werden direkt aus res übernommen, also warum sind sie in anderer Reihenfolge?
Grüße
Pawel
Um die Werte aus der Oracle-Datenbank zurückgegeben werden immer in der gleichen Reihenfolge, fügen Sie eine 'ORDER BY' Klausel, um Ihren Code zB zu gewährleisten:' ORDER BY column_name' – Ollie
Ah ja, es war nicht auf meinem Bildschirm angezeigt wird, es sei denn i hob es hervor. Ich werde mich da raushalten, da ich sehr wenig über Python weiß. – Ollie