My bad. I signed off on the Oracle Application Express Installation Guide as being complete for 5.1. Unfortunately, I did not pay enough attention to the appendix. We will get this corrected soon in a refreshed version of the Installation Guide, but in the meantime, below are the instructions we will be including.
Reverting
to Release 5.0 in a non-CDB
To
revert to a previous Oracle Application Express release 5.0 in a non-CDB:
- If you altered your images directory, revert it back to the release you want to revert to. See "Reverting the Images Directory."
- Change your working directory to apex/core in the 5.0 source.
- Start SQL*Plus and connect to the database where Oracle
Application Express is installed as SYS specifying the SYSDBA role:
On Windows:
SYSTEM_DRIVE:\
sqlplus /nolog
SQL>
CONNECT SYS as SYSDBA
Enter
password: SYS_password
On UNIX and Linux:
$
sqlplus /nolog
SQL>
CONNECT SYS as SYSDBA
Enter
password: SYS_password
- Execute the following commands:
alter session set current_schema = SYS; @wwv_flow_val.sql @wwv_flow_val.plb begin dbms_utility.compile_schema('APEX_050000'); end; / set define '^' @validate_apex x x APEX_050000 begin for i in ( select owner, trigger_name from sys.dba_triggers where owner = 'APEX_050000' and trigger_name like 'WWV_FLOW_UPGRADE_%' order by 1 ) loop sys.dbms_output.put_line('Dropping trigger '||i.owner||'.'||i.trigger_name); execute immediate 'drop trigger '||i.owner||'.'||i.trigger_name; end loop; end; / ALTER SESSION SET CURRENT_SCHEMA = APEX_050000; exec apex_050000.wwv_flow_upgrade.switch_schemas('APEX_050100','APEX_050000'); ALTER SESSION SET CURRENT_SCHEMA = SYS; drop context APEX$SESSION; create context APEX$SESSION using APEX_050000.WWV_FLOW_SESSION_CONTEXT; declare l_apex_version varchar2(30); l_schemas sys.dbms_registry.schema_list_t; begin l_apex_version := apex_050000.wwv_flows_release; dbms_registry.downgrading('APEX','Oracle Application Express','validate_apex','APEX_050000'); dbms_registry.downgraded('APEX',l_apex_version); select username bulk collect into l_schemas from all_users where username in ('FLOWS_FILES','APEX_PUBLIC_USER','APEX_LISTENER','APEX_REST_PUBLIC_USER','APEX_INSTANCE_ADMIN_USER') order by 1; sys.dbms_registry.update_schema_list('APEX', l_schemas); validate_apex; end; /
- See the next section, "Removing the Oracle Application Express Release 5.1 Schema."
Reverting
to Release 5.0 in a CDB
To
revert to a previous Oracle Application Express release 5.0 in a CDB:
- If you altered your images directory, revert it back to the release you want to revert to. See "Reverting the Images Directory."
- Change your working directory to apex/core in the 5.0 source.
- Create a new text file in that directory named apx50dgrd1.sql consisting of the following:
alter session set current_schema = SYS; @wwv_flow_val.sql @wwv_flow_val.plb begin dbms_utility.compile_schema('APEX_050000'); end; / set define '^' @validate_apex x x APEX_050000 begin for i in ( select owner, trigger_name from sys.dba_triggers where owner = 'APEX_050000' and trigger_name like 'WWV_FLOW_UPGRADE_%' order by 1 ) loop sys.dbms_output.put_line('Dropping trigger '||i.owner||'.'||i.trigger_name); execute immediate 'drop trigger '||i.owner||'.'||i.trigger_name; end loop; end; / ALTER SESSION SET CURRENT_SCHEMA = APEX_050000; exec apex_050000.wwv_flow_upgrade.switch_schemas('APEX_050100','APEX_050000'); ALTER SESSION SET CURRENT_SCHEMA = SYS; drop context APEX$SESSION; create context APEX$SESSION using APEX_050000.WWV_FLOW_SESSION_CONTEXT; declare l_apex_version varchar2(30); l_schemas sys.dbms_registry.schema_list_t; begin l_apex_version := apex_050000.wwv_flows_release; dbms_registry.downgrading('APEX','Oracle Application Express','validate_apex','APEX_050000'); dbms_registry.downgraded('APEX',l_apex_version); select username bulk collect into l_schemas from all_users where username in ('FLOWS_FILES','APEX_PUBLIC_USER','APEX_LISTENER','APEX_REST_PUBLIC_USER','APEX_INSTANCE_ADMIN_USER') order by 1; sys.dbms_registry.update_schema_list('APEX', l_schemas); validate_apex; end; /
- Create a second new text file in that directory named apx50dgrd.sql consisting of the following:
set define '^' whenever sqlerror exit column :xe_home new_value OH_HOME NOPRINT variable xe_home varchar2(255) set serverout on begin -- get oracle_home sys.dbms_system.get_env('ORACLE_HOME',:xe_home); if length(:xe_home) = 0 then sys.dbms_output.put_line(lpad('-',80,'-')); raise_application_error (-20001,'Oracle Home environment variable not set' ); end if; end; / whenever sqlerror continue set termout off select :xe_home from sys.dual; set termout on host ^OH_HOME/perl/bin/perl -I ^OH_HOME/rdbms/admin ^OH_HOME/rdbms/admin/catcon.pl -b apx50dgrd apx50dgrd1.sql
- Start SQL*Plus and connect to CDB$ROOT of the database where Oracle Application Express is installed as SYS specifying the SYSDBA role:
On Windows:
SYSTEM_DRIVE:\
sqlplus /nolog
SQL>
CONNECT SYS as SYSDBA
Enter
password: SYS_password
On UNIX and Linux:
$
sqlplus /nolog
SQL>
CONNECT SYS as SYSDBA
Enter
password: SYS_password
- Execute the following commands:
@apx50dgrd.sql
- See the next section, "Removing the Oracle Application Express Release 5.1 Schema."