ORA-8117 error - cann't serialize access this transaction.
Oracle has three type of isolation levels:
read committed: it is default, I think it won't need to explain. Also this is how database to keep statement-level read consistency.
serializable: query result is repeatable during the transaction, it won't see the committed change by other transaction. if you try to update the data during the serializable transaction, which was changed by another concurrent user, this ORA-8117 error will happen. It's how database to keep transaction-level read consistency.
read-only: just read-only, no insert/update/delete is allowed.
set transaction isolation level serializable;
set transaction isolation level read committed;
set transaction isolation level read only;
Also you can do it in session level, ex:
alter session set isolation level read only;