Perché cx_oracle e sqlplus danno risultati diversi per la stessa query selezionata
Domanda
Usando Python e CX_Oracle, sto cercando di inserire le righe su una tabella.
con = cx_Oracle.connect(ORACLE_USER+'/'+PASS+'@'+TNS)
cursor = con.cursor()
...
try:
cursor.executemany("INSERT INTO table(ID,NAME) VALUES(...)"
except cx_Oracle,exc:
error ,=exc.args
print error.code
print error.message
cursor.close()
con.close()
Dopo aver inserito tutte le righe da un file di input, utilizzando Select query in CX_ORACLE, posso vedere le righe inserite. Tuttavia, SQLplus non fornisce risultati quando inserisco "Seleziona * dalla tabella;" C'è qualcosa che mi sono perso su cx_oracle o c'è un buffer nel client Oracle che mostra i vecchi risultati con sqlplus quando è collegato a un DB remoto?
Soluzione
Hai commesso il tuo inserto?
con.commit() #after inserts
o
con.autocommit = true #before inserts
Altri suggerimenti
Ho avuto un problema invertito: ho aggiunto righe usando sqlQuery e dopo 2 ore di sofferenza ho letto questo post e indovina, che dovrei chiudere la mia sessione. Ho chiuso la console e sono riuscito a ottenere i miei dati!
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow