"You can now define connections as read-only, so that you cannot make any modifications to the table data or object definitions. Any attempt to make such a modification will lead to an error message"
This works very well for normal DDL and DML calls.
But beware if a function with the pragma 'autonomous_transaction' is called from a query, data changes can very well occur!