We have some pretty high-load service in oltp database built using Oracle's procedures, functions, views and etc.
Whenever we want to update our code base, it's usually throws an error like
- ORA-06550 (invalidations because of changing depending objects)
- ORA-04068
- ORA-04065 (not executed, altered or dropped stored procedure)
because parent procedure that triggers view execution that triggers functions execution is called by outside API at this right moment when we are updating functions, views, procedures.
We usually update it via CREATE OR REPLACE and it takes about 0.3 - 0.4 seconds. Then we recompile invalid objects if there any.
Problem
Because we can't have any downtime during daytime, we usually proceed with this operations at night, which is very inconvenient.
Oracle promises eliminating downtime using their EBR, but aren't for example functions EDITIONABLE by default? And is recompiling them using simple DDL any different from using EBR?
Will changing editions using EBR throw ORA-04065 while objects being called? Or any better solutions for Oracle 19c version?
There isn't much about EBR besides some marketing crap from Oracle