Originally posted by adrianomp
Another classic reason for ORA-01555 is to leave cursors opened and fetch across commits. Depending on the query, it doesn't even need to be so "long-running"
Of course most cursors should be implicit cursors, removing the necessity to close cursors in code, as they will be closed for you. But certainly, fetching accross commits with open cursors will cause the ORA-01555.