Updating entire tables using update query
TABLOCK Specifies that a table-level lock is acquired for the duration of the bulk-import operation.A table can be loaded concurrently by multiple clients if the table has no indexes and TABLOCK is specified.Isolation level may influence the types of locks placed (row-level, row range, page, etc.) and which types of locks it will honor (will it block on somebody else's shared lock or not).But I don't believe that any of the basic 4 isolation levels will avoid locking updates.
Transactions running at the READ UNCOMMITTED level do not issue shared locks to prevent other transactions from modifying data read by the current transaction." will prevent an insert/update/delete from placing locks.
In Oracle, the default transaction isolation level is READ COMMITTED.
Further, Oracle locks at the row-level, and never escalates a lock to the block (called page in SQL Server? So, if you lock row 'a' in a table, and then another session attempts to lock row 'b' in the same table, that lock will succeed, if the rows are in the same block.
One interesting use of a read only transaction is that (in addition to being read only), it provides all queries that execute in that transaction, read consistency to the point in time of the start of the transaction.
So, once you do 'set transaction read only', any query you execute will return results consistent with the time of the start of the transaction.