Reverting to a Previous Release

Learn how to revert to a previous release Oracle APEX.

Reverting to Release 1.5

To revert to Oracle APEX release 1.5:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  3. Execute the following:

    ALTER SESSION SET CURRENT_SCHEMA = FLOWS_010500;
    exec flows_010500.wwv_flow_upgrade.switch_schemas('APEX_260200','FLOWS_010500');
  4. Remove the APEX release schema. See Removing the APEX Release Schema.

See Also: Reverting the Images Directory

Reverting to Release 1.6

To revert to Oracle APEX release 1.6:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  3. Execute the following:

    ALTER SESSION SET CURRENT_SCHEMA = FLOWS_010600;
    exec flows_010600.wwv_flow_upgrade.switch_schemas('APEX_260200','FLOWS_010600');
  4. Depending upon the release you are reverting to, execute the appropriate command in SQLcl.

  5. Remove the APEX release schema. See Removing the APEX Release Schema.

See Also: Reverting the Images Directory

Reverting to Release 2.0

To revert to Oracle APEX release 2.0:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  3. Execute the following:

    ALTER SESSION SET CURRENT_SCHEMA = FLOWS_020000;
    exec flows_020000.wwv_flow_upgrade.switch_schemas('APEX_260200','FLOWS_020000');
  4. Remove the APEX release schema. See Removing the APEX Release Schema.

See Also: Reverting the Images Directory

Reverting to Release 2.2

To revert to Oracle APEX release 2.2:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  3. Execute the following:

    ALTER SESSION SET CURRENT_SCHEMA = FLOWS_020200;
    exec flows_020200.wwv_flow_upgrade.switch_schemas('APEX_260200','FLOWS_020200');
  4. Remove the APEX release schema. See Removing the APEX Release Schema.

See Also: Removing the APEX Release Schema

Reverting to Release 3.0

To revert to Oracle APEX release 3.0:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 3.0 source.

  3. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  4. Execute the following:

    set define '^'
    
    @apexvalidate x x FLOWS_030000
    ALTER SESSION SET CURRENT_SCHEMA = FLOWS_030000;
    exec flows_030000.wwv_flow_upgrade.switch_schemas('APEX_260200','FLOWS_030000');
    ALTER SESSION SET CURRENT_SCHEMA = SYS;
    declare
        l_apex_version varchar2(30);
    begin
        sys.dbms_registry.set_session_namespace (namespace => 'DBTOOLS');
        l_apex_version := flows_030000.wwv_flows_release;
        dbms_registry.downgrading('APEX','Oracle Application Express','validate_apex','FLOWS_030000');
        dbms_registry.downgraded('APEX',l_apex_version);
        validate_apex;
    end;
    /
  5. Remove the APEX release schema. See Removing the APEX Release Schema.

See Also: Reverting the Images Directory

Reverting to Release 3.1

To revert to Oracle APEX release 3.1:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex/core in the 3.1 source.

  3. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  4. Execute the following commands:

    @wwv_flow_val.plb
    @wwv_dbms_sql.sql
    @wwv_dbms_sql.plb
  5. Change your working directory to apex in the 3.1 source.

  6. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  7. Execute the following:

    set define '^'
    
    @apexvalidate x x FLOWS_030100
    ALTER SESSION SET CURRENT_SCHEMA = FLOWS_030100;
    exec flows_030100.wwv_flow_upgrade.switch_schemas('APEX_260200','FLOWS_030100');
    ALTER SESSION SET CURRENT_SCHEMA = SYS;
    declare
        l_apex_version varchar2(30);
    begin
        sys.dbms_registry.set_session_namespace (namespace => 'DBTOOLS');
        l_apex_version := flows_030100.wwv_flows_release;
        dbms_registry.downgrading('APEX','Oracle Application Express','validate_apex','FLOWS_030100');
        dbms_registry.downgraded('APEX',l_apex_version);
        validate_apex;
    end;
    /
  8. Remove the APEX release schema. See Removing the APEX Release Schema.

See Also: Reverting the Images Directory

Reverting to Release 3.2

To revert to Oracle APEX release 3.2:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex/core in the 3.2 source.

  3. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  4. Execute the following commands:

    @wwv_flow_val.plb
    @wwv_dbms_sql.sql
    @wwv_dbms_sql.plb
  5. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  6. Execute the following:

    set define '^'
    
    @apexvalidate x x APEX_030200
    ALTER SESSION SET CURRENT_SCHEMA = APEX_030200;
    exec apex_030200.wwv_flow_upgrade.switch_schemas('APEX_260200','APEX_030200');
    ALTER SESSION SET CURRENT_SCHEMA = SYS;
    declare
        l_apex_version varchar2(30);
    begin
        sys.dbms_registry.set_session_namespace (namespace => 'DBTOOLS');
        l_apex_version := apex_030200.wwv_flows_release;
        dbms_registry.downgrading('APEX','Oracle Application Express','validate_apex','APEX_030200')
        dbms_registry.downgraded('APEX',l_apex_version);
        validate_apex;
    end;
    /
  7. Remove the APEX release schema. See Removing the APEX Release Schema.

See Also: Reverting the Images Directory

Reverting to Release 4.0

To revert to Oracle APEX release 4.0:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  3. Execute the following commands:

    @wwv_flow_val.sql
    @wwv_flow_val.plb
    @wwv_dbms_sql.sql
    @wwv_dbms_sql.plb
  4. Change your working directory to apex in the 4.0 source.

  5. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  6. Execute the following:

    set define '^'
    
    @apexvalidate x x APEX_040000
    ALTER SESSION SET CURRENT_SCHEMA = APEX_040000;
    exec apex_040000.wwv_flow_upgrade.switch_schemas('APEX_260200','APEX_040000');
    ALTER SESSION SET CURRENT_SCHEMA = SYS;
    declare
        l_apex_version varchar2(30);
    begin
        sys.dbms_registry.set_session_namespace (namespace => 'DBTOOLS');
        l_apex_version := apex_040000.wwv_flows_release;
        dbms_registry.downgrading('APEX','Oracle Application Express','validate_apex','APEX_040000');
        dbms_registry.downgraded('APEX',l_apex_version);
        validate_apex;
    end;
    /
  7. Remove the APEX release schema. See Removing the APEX Release Schema.

See Also: Reverting the Images Directory

Reverting to Release 4.1

To revert to Oracle APEX release 4.1:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex/core in the 4.1 source.

  3. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  4. Execute the following commands:

    @wwv_flow_val.sql
    @wwv_flow_val.plb
    @wwv_dbms_sql.sql
    @wwv_dbms_sql.plb
  5. Change your working directory to apex in the 4.1 source.

  6. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  7. Execute the following:

    set define '^'
    
    @apexvalidate x x APEX_040100
    ALTER SESSION SET CURRENT_SCHEMA = APEX_040100;
    exec apex_040100.wwv_flow_upgrade.switch_schemas('APEX_260200','APEX_040100');
    ALTER SESSION SET CURRENT_SCHEMA = SYS;
    declare
        l_apex_version varchar2(30);
    begin
        sys.dbms_registry.set_session_namespace (namespace => 'DBTOOLS');
        l_apex_version := apex_040100.wwv_flows_release;
        dbms_registry.downgrading('APEX','Oracle Application Express','validate_apex','APEX_040100');
        dbms_registry.downgraded('APEX',l_apex_version);
        validate_apex;
    end;
    /
  8. Remove the APEX release schema. See Removing the APEX Release Schema.

See Also: Reverting the Images Directory

Reverting to Release 4.2 in a non-CDB or PDB with Local APEX

To revert to Oracle APEX release 4.2 in a non-CDB or PDB with a locally installed APEX:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex/core in the 4.2 source.

  3. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  4. Execute the following commands:

    alter session set current_schema = SYS;
    
    @core_sys_views.sql
    
    grant select on sys.wwv_flow_gv$session to APEX_040200;
    
    @wwv_flow_val.sql
    @wwv_flow_val.plb
    @wwv_dbms_sql.sql
    grant execute on wwv_dbms_sql to APEX_040200;
    @wwv_dbms_sql.plb
    
    begin
        dbms_utility.compile_schema('APEX_040200');
    end;
    /
  5. Change your working directory to apex in the 4.2 source.

  6. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  7. Execute the following:

    set define '^'
    
    @apexvalidate x x APEX_040200
    ALTER SESSION SET CURRENT_SCHEMA = APEX_040200;
    exec apex_040200.wwv_flow_upgrade.switch_schemas('APEX_260200','APEX_040200');
    ALTER SESSION SET CURRENT_SCHEMA = SYS;
    declare
        l_apex_version varchar2(30);
    begin
        sys.dbms_registry.set_session_namespace (namespace => 'DBTOOLS');
        l_apex_version := apex_040200.wwv_flows_release;
        dbms_registry.downgrading('APEX','Oracle Application Express','validate_apex','APEX_040200');
        dbms_registry.downgraded('APEX',l_apex_version);
        validate_apex;
    end;
    /
  8. Remove the APEX release schema. See Removing the APEX Release Schema.

See Also: Reverting the Images Directory

Reverting to Release 4.2 in a CDB

To revert to Oracle APEX release 4.2 in a CDB:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex/core in the 4.2 source.

  3. Create a new text file in that directory named apx42dgrd1.sql consisting of the following:

    alter session set current_schema = SYS;
    
    @core_sys_views.sql
    
    grant select on sys.wwv_flow_gv$session to APEX_040200;
    
    @wwv_flow_val.sql
    @wwv_flow_val.plb
    @wwv_dbms_sql.sql
    grant execute on wwv_dbms_sql to APEX_040200;
    @wwv_dbms_sql.plb
    
    begin
        dbms_utility.compile_schema('APEX_040200');
    end;
    /
  4. Create a second new text file in that directory named apx42dgrd.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 apx42dgrd apx42dgrd1.sql
  5. Start SQLcl and connect to CDB$ROOT of the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  6. Execute the following commands:

    @apx42dgrd.sql
  7. Change your working directory to apex in the 4.2 source.

  8. Create a new text file in that directory name apx42dgrd1.sql with the following contents:

    set define '^'
    
    ALTER SESSION SET CURRENT_SCHEMA = SYS;
    
    @apexvalidate x x APEX_040200
    
    ALTER SESSION SET CURRENT_SCHEMA = APEX_040200;
    exec apex_040200.wwv_flow_upgrade.switch_schemas('APEX_260200','APEX_040200');
    ALTER SESSION SET CURRENT_SCHEMA = SYS;
    declare
        l_apex_version varchar2(30);
    begin
        sys.dbms_registry.set_session_namespace (namespace => 'DBTOOLS');
        l_apex_version := apex_040200.wwv_flows_release;
        dbms_registry.downgrading('APEX','Oracle Application Express','validate_apex','APEX_040200');
        dbms_registry.downgraded('APEX',l_apex_version);
        validate_apex;
    end;
    /
  9. Create a second new text file in that directory named apx42dgrd.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 apx42dgrd apx42dgrd1.sql
  10. Start SQLcl and connect to CDB$ROOT of the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  11. Execute the following:

    @apx42dgrd.sql
  12. Remove the APEX release schema. See Removing the APEX Release Schema.

See Also: Reverting the Images Directory

Reverting to Release 5.0 in a non-CDB or PDB with Local APEX

To revert to Oracle APEX release 5.0 in a non-CDB or PDB with a locally installed APEX:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex/core in the 5.0 source.

  3. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  4. 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_260200','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
         sys.dbms_registry.set_session_namespace (namespace => 'DBTOOLS');
         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;
    /
  5. Remove the APEX release schema. See Removing the APEX Release Schema.

See Also: Reverting the Images Directory

Reverting to Release 5.0 in a CDB

To revert to Oracle APEX release 5.0 in a CDB:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex/core in the 5.0 source.

  3. 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_260200','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
         sys.dbms_registry.set_session_namespace (namespace => 'DBTOOLS');
         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;
    /
  4. 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
  5. Start SQLcl and connect to CDB$ROOT of the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  6. Execute the following commands:

    @apx50dgrd.sql
  7. Remove the APEX release schema. See Removing the APEX Release Schema.

See Also: Reverting the Images Directory

Reverting to Release 5.1 in a non-CDB or PDB with Local APEX

To revert to Oracle APEX release 5.1 in a non-CDB or PDB with a locally installed APEX:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex/core in the 5.1 source.

  3. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  4. Execute the following commands:

    alter session set current_schema = SYS;
    
    @wwv_flow_val.sql
    @wwv_flow_val.plb
    
    begin
         dbms_utility.compile_schema('APEX_050100');
    end;
    /
    
    set define '^'
    @validate_apex x x APEX_050100
    
    begin
      for i in ( select owner, trigger_name
                   from sys.dba_triggers
                  where owner        =    'APEX_050100'
                    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_050100;
    exec apex_050100.wwv_flow_upgrade.switch_schemas('APEX_260200','APEX_050100');
    ALTER SESSION SET CURRENT_SCHEMA = SYS;
    drop context APEX$SESSION;
    create context APEX$SESSION using APEX_050100.WWV_FLOW_SESSION_CONTEXT;
    declare
         l_apex_version varchar2(30);
         l_schemas sys.dbms_registry.schema_list_t;
    begin
         sys.dbms_registry.set_session_namespace (namespace => 'DBTOOLS');
         l_apex_version := apex_050100.wwv_flows_release;
         dbms_registry.downgrading('APEX','Oracle Application Express','validate_apex','APEX_050100');
         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;
    /
  5. Remove the APEX release schema. See Removing the APEX Release Schema.

See Also: Reverting the Images Directory

Reverting to Release 5.1 in a CDB

To revert to Oracle APEX release 5.1 in a CDB:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex/core in the 5.1 source.

  3. Create a new text file in that directory named apx51dgrd1.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_050100');
    end;
    /
    
    set define '^'
    @validate_apex x x APEX_050100
    
    begin
      for i in ( select owner, trigger_name
                   from sys.dba_triggers
                  where owner        =    'APEX_050100'
                    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_050100;
    exec apex_050100.wwv_flow_upgrade.switch_schemas('APEX_260200','APEX_050100');
    ALTER SESSION SET CURRENT_SCHEMA = SYS;
    drop context APEX$SESSION;
    create context APEX$SESSION using APEX_050100.WWV_FLOW_SESSION_CONTEXT;
    declare
         l_apex_version varchar2(30);
         l_schemas sys.dbms_registry.schema_list_t;
    begin
         sys.dbms_registry.set_session_namespace (namespace => 'DBTOOLS');
         l_apex_version := apex_050100.wwv_flows_release;
         dbms_registry.downgrading('APEX','Oracle Application Express','validate_apex','APEX_050100');
         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;
    /
  4. Create a second new text file in that directory named apx51dgrd.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 apx51dgrd apx51dgrd1.sql
  5. Start SQLcl and connect to CDB$ROOT of the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  6. Execute the following commands:

    @apx51dgrd.sql
  7. Remove the APEX release schema. See Removing the APEX Release Schema.

See Also: Reverting the Images Directory

Reverting to Release 18.1 in a non-CDB or PDB with Local APEX

To revert to Oracle APEX release 18.1 in a non-CDB or PDB with a locally installed APEX:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 18.1 source.

  3. Create a new text file in that directory named apxdwngrd.sql consisting of the following:

    set define '^'
    set concat on
    set concat .
    set verify off
    
    set termout off
    column foo new_val LOG
    select 'apxdwngrd_' ||to_char(sysdate, 'YYYY-MM-DD_HH24-MI-SS') || '.log' as foo
      from sys.dual;
    set termout on
    spool ^LOG
    
    @@core/scripts/set_appun.sql
    
    whenever sqlerror exit
    set serveroutput on size unlimited
    
    declare
        l_cnt    number := 0;
    begin
        select count(*) into l_cnt from sys.dba_users where username = '^APPUN';
        if l_cnt = 0 then
            dbms_output.put_line('^APPUN not found in this database.');
            raise program_error;
        end if;
    end;
    /
    whenever sqlerror continue
    
    prompt ...Create validate procedure in SYS schema and start registration
    @@core/validate_apex.sql x x ^APPUN
    
    grant inherit any privileges to ^APPUN;
    
    prompt Installing SYS views
    
    @@core/sys_core_views.sql
    
    @@core/wwv_flow_val.sql
    grant execute on sys.wwv_flow_val to ^APPUN.;
    
    @@core/wwv_flow_val.plb
    
    ALTER SESSION SET CURRENT_SCHEMA = ^APPUN;
    
    exec sys.dbms_session.modify_package_state(sys.dbms_session.reinitialize);
    
    begin
        ^APPUN..wwv_flow_upgrade.remove_jobs();
        ^APPUN..wwv_flow_upgrade.create_jobs('^APPUN');
        ^APPUN..wwv_flow_upgrade.create_public_synonyms('^APPUN');
        ^APPUN..wwv_flow_upgrade.grant_public_synonyms('^APPUN');
        ^APPUN..wwv_flow_upgrade.flows_files_objects_remove('^APPUN');
        ^APPUN..wwv_flow_upgrade.flows_files_objects_create('^APPUN');
    end;
    /
    
    ALTER SESSION SET CURRENT_SCHEMA = SYS;
    
    drop context APEX$SESSION;
    create context APEX$SESSION using ^APPUN..WWV_FLOW_SESSION_CONTEXT;
    
    alter package sys.wwv_dbms_sql_^APPUN. compile;
    alter package sys.wwv_dbms_sql_^APPUN. compile body;
    
    exec sys.dbms_session.modify_package_state(sys.dbms_session.reinitialize);
    
    set serveroutput on size unlimited
    
    declare
         l_apex_version varchar2(30);
         l_schemas sys.dbms_registry.schema_list_t;
    begin
        sys.dbms_registry.set_session_namespace (namespace => 'DBTOOLS');
        execute immediate 'drop package ^APPUN..WWV_FLOW_DB_VERSION';
        l_apex_version := ^APPUN..wwv_flows_release;
        sys.dbms_registry.loading('APEX','Oracle Application Express','validate_apex', '^APPUN');
        select username
          bulk collect into l_schemas
          from sys.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);
         sys.dbms_registry.loaded('APEX',l_apex_version);
         commit;
         sys.validate_apex;
    end;
    /
  4. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  5. Run the apxdwngrd.sql script:

    SQL> @apxdwngrd.sql
  6. Remove the APEX release schema. See Removing the APEX Release Schema.

See Also: Reverting the Images Directory

Reverting to Release 18.1 in a CDB

To revert to Oracle APEX release 18.1 in a CDB:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 18.1 source.

  3. Create a new text file in that directory named apxdwngrd.sql consisting of the following:

    set define '^'
    set concat on
    set concat .
    set verify off
    
    set termout off
    column foo new_val LOG
    select 'apxdwngrd_' ||to_char(sysdate, 'YYYY-MM-DD_HH24-MI-SS') || '.log' as foo
      from sys.dual;
    set termout on
    spool ^LOG
    
    @@core/scripts/set_appun.sql
    
    whenever sqlerror exit
    set serveroutput on size unlimited
    
    declare
        l_cnt    number := 0;
    begin
        select count(*) into l_cnt from sys.dba_users where username = '^APPUN';
        if l_cnt = 0 then
            dbms_output.put_line('^APPUN not found in this database.');
            raise program_error;
        end if;
    end;
    /
    whenever sqlerror continue
    
    prompt ...Create validate procedure in SYS schema and start registration
    @@core/validate_apex.sql x x ^APPUN
    
    grant inherit any privileges to ^APPUN;
    
    prompt Installing SYS views
    
    @@core/sys_core_views.sql
    
    @@core/wwv_flow_val.sql
    grant execute on sys.wwv_flow_val to ^APPUN.;
    
    @@core/wwv_flow_val.plb
    
    ALTER SESSION SET CURRENT_SCHEMA = ^APPUN;
    
    exec sys.dbms_session.modify_package_state(sys.dbms_session.reinitialize);
    
    begin
        ^APPUN..wwv_flow_upgrade.remove_jobs();
        ^APPUN..wwv_flow_upgrade.create_jobs('^APPUN');
        ^APPUN..wwv_flow_upgrade.create_public_synonyms('^APPUN');
        ^APPUN..wwv_flow_upgrade.grant_public_synonyms('^APPUN');
        ^APPUN..wwv_flow_upgrade.flows_files_objects_remove('^APPUN');
        ^APPUN..wwv_flow_upgrade.flows_files_objects_create('^APPUN');
    end;
    /
    
    ALTER SESSION SET CURRENT_SCHEMA = SYS;
    
    drop context APEX$SESSION;
    create context APEX$SESSION using ^APPUN..WWV_FLOW_SESSION_CONTEXT;
    
    alter package sys.wwv_dbms_sql_^APPUN. compile;
    alter package sys.wwv_dbms_sql_^APPUN. compile body;
    
    exec sys.dbms_session.modify_package_state(sys.dbms_session.reinitialize);
    
    set serveroutput on size unlimited
    
    declare
         l_apex_version varchar2(30);
         l_schemas sys.dbms_registry.schema_list_t;
    begin
        sys.dbms_registry.set_session_namespace (namespace => 'DBTOOLS');
        execute immediate 'drop package ^APPUN..WWV_FLOW_DB_VERSION';
        l_apex_version := ^APPUN..wwv_flows_release;
        sys.dbms_registry.loading('APEX','Oracle Application Express','validate_apex', '^APPUN');
        select username
          bulk collect into l_schemas
          from sys.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);
         sys.dbms_registry.loaded('APEX',l_apex_version);
         commit;
         sys.validate_apex;
    end;
    /
  4. Create a second new text file in that directory named apxdwngrd_cdb.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 apx181dgrd apxdwngrd.sql
  5. Start SQLcl and connect to CDB$ROOT of the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  6. Run the apxdwngrd_cdb.sql script:

    SQL> @apxdwngrd_cdb.sql
  7. Remove the APEX release schema. See Removing the APEX Release Schema.

See Also: Reverting the Images Directory

Reverting to Release 18.2 in a non-CDB or PDB with Local APEX

To revert to Oracle APEX release 18.2 in a non-CDB or PDB with a locally installed APEX:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 18.2 source.

  3. Create a new text file in that directory named apxdwngrd.sql consisting of the following:

    set define '^'
    set concat on
    set concat .
    set verify off
    
    set termout off
    column foo new_val LOG
    select 'apxdwngrd_' ||to_char(sysdate, 'YYYY-MM-DD_HH24-MI-SS') || '.log' as foo
      from sys.dual;
    set termout on
    spool ^LOG
    
    @@core/scripts/set_appun.sql
    
    whenever sqlerror exit
    set serveroutput on size unlimited
    
    declare
        l_cnt    number := 0;
    begin
        select count(*) into l_cnt from sys.dba_users where username = '^APPUN';
        if l_cnt = 0 then
            dbms_output.put_line('^APPUN not found in this database.');
            raise program_error;
        end if;
    end;
    /
    whenever sqlerror continue
    
    prompt ...Create validate procedure in SYS schema and start registration
    @@core/validate_apex.sql x x ^APPUN
    
    grant inherit any privileges to ^APPUN;
    
    prompt Installing SYS views
    
    @@core/sys_core_views.sql
    
    @@core/wwv_flow_val.sql
    grant execute on sys.wwv_flow_val to ^APPUN.;
    
    @@core/wwv_flow_val.plb
    
    ALTER SESSION SET CURRENT_SCHEMA = ^APPUN;
    
    exec sys.dbms_session.modify_package_state(sys.dbms_session.reinitialize);
    
    begin
        ^APPUN..wwv_flow_upgrade.remove_jobs();
        ^APPUN..wwv_flow_upgrade.create_jobs('^APPUN');
        ^APPUN..wwv_flow_upgrade.create_public_synonyms('^APPUN');
        ^APPUN..wwv_flow_upgrade.grant_public_synonyms('^APPUN');
        ^APPUN..wwv_flow_upgrade.flows_files_objects_remove('^APPUN');
        ^APPUN..wwv_flow_upgrade.flows_files_objects_create('^APPUN');
    end;
    /
    
    ALTER SESSION SET CURRENT_SCHEMA = SYS;
    
    drop context APEX$SESSION;
    create context APEX$SESSION using ^APPUN..WWV_FLOW_SESSION_CONTEXT;
    
    alter package sys.wwv_dbms_sql_^APPUN. compile;
    alter package sys.wwv_dbms_sql_^APPUN. compile body;
    
    exec sys.dbms_session.modify_package_state(sys.dbms_session.reinitialize);
    
    set serveroutput on size unlimited
    
    declare
         l_apex_version varchar2(30);
         l_schemas sys.dbms_registry.schema_list_t;
    begin
        sys.dbms_registry.set_session_namespace (namespace => 'DBTOOLS');
        execute immediate 'drop package ^APPUN..WWV_FLOW_DB_VERSION';
        l_apex_version := ^APPUN..wwv_flows_release;
        sys.dbms_registry.loading('APEX','Oracle Application Express','validate_apex', '^APPUN');
        select username
          bulk collect into l_schemas
          from sys.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);
         sys.dbms_registry.loaded('APEX',l_apex_version);
         commit;
         sys.validate_apex;
    end;
    /
  4. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  5. Run the apxdwngrd.sql script:

    SQL> @apxdwngrd.sql
  6. Remove the APEX release schema. See Removing the APEX Release Schema.

See Also: Reverting the Images Directory

Reverting to Release 18.2 in a CDB

To revert to Oracle APEX release 18.2 in a CDB:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 18.2 source.

  3. Create a new text file in that directory named apxdwngrd.sql consisting of the following:

    set define '^'
    set concat on
    set concat .
    set verify off
    
    set termout off
    column foo new_val LOG
    select 'apxdwngrd_' ||to_char(sysdate, 'YYYY-MM-DD_HH24-MI-SS') || '.log' as foo
      from sys.dual;
    set termout on
    spool ^LOG
    
    @@core/scripts/set_appun.sql
    
    whenever sqlerror exit
    set serveroutput on size unlimited
    
    declare
        l_cnt    number := 0;
    begin
        select count(*) into l_cnt from sys.dba_users where username = '^APPUN';
        if l_cnt = 0 then
            dbms_output.put_line('^APPUN not found in this database.');
            raise program_error;
        end if;
    end;
    /
    whenever sqlerror continue
    
    prompt ...Create validate procedure in SYS schema and start registration
    @@core/validate_apex.sql x x ^APPUN
    
    grant inherit any privileges to ^APPUN;
    
    prompt Installing SYS views
    
    @@core/sys_core_views.sql
    
    @@core/wwv_flow_val.sql
    grant execute on sys.wwv_flow_val to ^APPUN.;
    
    @@core/wwv_flow_val.plb
    
    ALTER SESSION SET CURRENT_SCHEMA = ^APPUN;
    
    exec sys.dbms_session.modify_package_state(sys.dbms_session.reinitialize);
    
    begin
        ^APPUN..wwv_flow_upgrade.remove_jobs();
        ^APPUN..wwv_flow_upgrade.create_jobs('^APPUN');
        ^APPUN..wwv_flow_upgrade.create_public_synonyms('^APPUN');
        ^APPUN..wwv_flow_upgrade.grant_public_synonyms('^APPUN');
        ^APPUN..wwv_flow_upgrade.flows_files_objects_remove('^APPUN');
        ^APPUN..wwv_flow_upgrade.flows_files_objects_create('^APPUN');
    end;
    /
    
    ALTER SESSION SET CURRENT_SCHEMA = SYS;
    
    drop context APEX$SESSION;
    create context APEX$SESSION using ^APPUN..WWV_FLOW_SESSION_CONTEXT;
    
    alter package sys.wwv_dbms_sql_^APPUN. compile;
    alter package sys.wwv_dbms_sql_^APPUN. compile body;
    
    exec sys.dbms_session.modify_package_state(sys.dbms_session.reinitialize);
    
    set serveroutput on size unlimited
    
    declare
         l_apex_version varchar2(30);
         l_schemas sys.dbms_registry.schema_list_t;
    begin
        sys.dbms_registry.set_session_namespace (namespace => 'DBTOOLS');
        execute immediate 'drop package ^APPUN..WWV_FLOW_DB_VERSION';
        l_apex_version := ^APPUN..wwv_flows_release;
        sys.dbms_registry.loading('APEX','Oracle Application
        select username
          bulk collect into l_schemas
          from sys.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);
         sys.dbms_registry.loaded('APEX',l_apex_version);
         commit;
         sys.validate_apex;
    end;
    /
  4. Create a second new text file in that directory named apxdwngrd_cdb.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 apx182dgrd apxdwngrd.sql
  5. Start SQLcl and connect to CDB$ROOT of the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  6. Run the apxdwngrd_cdb.sql script:

    SQL> @apxdwngrd_cdb.sql
  7. Remove the APEX release schema. See Removing the APEX Release Schema.

See Also: Reverting the Images Directory

Reverting to Release 19.1 in a non-CDB or PDB with Local APEX

To revert to Oracle APEX release 19.1 in a non-CDB or PDB with a locally installed APEX:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 19.1 source.

  3. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  4. Run the apxdwngrd.sql script:

    SQL> @apxdwngrd.sql
  5. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 19.1 in a CDB

To revert to Oracle APEX release 19.1 in a CDB:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 19.1 source.

  3. Create a script in the apex directory called apxdwngrd_cdb.sql with the following contents:

    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 apx191dgrd apxdwngrd.sql
  4. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  5. Run the apxdwngrd_cdb.sql script:

    SQL> @apxdwngrd_cdb.sql
  6. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 19.2 in a non-CDB or PDB with Local APEX

To revert to Oracle APEX release 19.2 in a non-CDB or PDB with a locally installed APEX:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 19.2 source.

  3. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  4. Run the apxdwngrd.sql script:

    SQL> @apxdwngrd.sql
  5. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 19.2 in a CDB

To revert to Oracle APEX release 19.2 in a CDB:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 19.2 source.

  3. Create a script in the apex directory called apxdwngrd_cdb.sql with the following contents:

    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 apx192dgrd apxdwngrd.sql
  4. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  5. Run the apxdwngrd_cdb.sql script:

    SQL> @apxdwngrd_cdb.sql
  6. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 20.1 in a non-CDB or PDB with Local APEX

To revert to Oracle APEX release 20.1 in a non-CDB or PDB with a locally installed APEX:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 20.1 source.

  3. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  4. Run the apxdwngrd.sql script:

    SQL> @apxdwngrd.sql
  5. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 20.1 in a CDB

To revert to Oracle APEX release 20.1 in a CDB:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 20.1 source.

  3. Create a script in the apex directory called apxdwngrd_cdb.sql with the following contents:

    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 apx201dgrd apxdwngrd.sql
  4. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  5. Run the apxdwngrd_cdb.sql script:

    SQL> @apxdwngrd_cdb.sql
  6. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 20.2 in a non-CDB or PDB with Local APEX

To revert to Oracle APEX release 20.2 in a non-CDB or PDB with a locally installed APEX:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 20.2 source.

  3. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  4. Run the apxdwngrd.sql script:

    SQL> @apxdwngrd.sql
  5. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 20.2 in a CDB

To revert to Oracle APEX release 20.2 in a CDB:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 20.2 source.

  3. Create a script in the apex directory called apxdwngrd_cdb.sql with the following contents:

    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 apx202dgrd apxdwngrd.sql
  4. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  5. Run the apxdwngrd_cdb.sql script:

    SQL> @apxdwngrd_cdb.sql
  6. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 21.1 in a non-CDB or PDB with Local APEX

To revert to Oracle APEX 21.1 in a non-CDB or PDB with a locally installed APEX:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 21.1 source.

  3. Start SQLcl and connect to the database where Oracle APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  4. Run the apxdwngrd.sql script:

    SQL> @apxdwngrd.sql
  5. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 21.1 in a CDB

To revert to Oracle APEX release 21.1 in a CDB:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 21.1 source.

  3. Create a script in the apex directory called apxdwngrd_cdb.sql with the following contents:

    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 apx211dgrd apxdwngrd.sql
  4. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  5. Run the apxdwngrd_cdb.sql script:

    SQL> @apxdwngrd_cdb.sql
  6. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 21.2 in a non-CDB or PDB with Local APEX

To revert to Oracle APEX 21.2 in a non-CDB or PDB with a locally installed APEX:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 21.2 source.

  3. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  4. Run the apxdwngrd.sql script:

    SQL> @apxdwngrd.sql
  5. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 21.2 in a CDB

To revert to Oracle APEX release 21.2 in a CDB:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 21.2 source.

  3. Create a script in the apex directory called apxdwngrd_cdb.sql with the following contents:

    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 apx212dgrd apxdwngrd.sql
  4. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  5. Run the apxdwngrd_cdb.sql script:

    SQL> @apxdwngrd_cdb.sql
  6. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 22.1 in a non-CDB or PDB with Local APEX

To revert to Oracle APEX 22.1 in a non-CDB or PDB with a locally installed APEX:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 22.1 source.

  3. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  4. Run the apxdwngrd.sql script:

    SQL> @apxdwngrd.sql
  5. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 22.1 in a CDB

To revert to Oracle APEX release 22.1 in a CDB:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 22.1 source.

  3. Create a script in the apex directory called apxdwngrd_cdb.sql with the following contents:

    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 apx212dgrd apxdwngrd.sql
  4. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  5. Run the apxdwngrd_cdb.sql script:

    SQL> @apxdwngrd_cdb.sql
  6. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 22.2 in a non-CDB or PDB with Local APEX

To revert to Oracle APEX 22.2 in a non-CDB or PDB with a locally installed APEX:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 22.2 source.

  3. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  4. Run the apxdwngrd.sql script:

    SQL> @apxdwngrd.sql
  5. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 22.2 in a CDB

To revert to Oracle APEX release 22.2 in a CDB:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 22.2 source.

  3. Create a script in the apex directory called apxdwngrd_cdb.sql with the following contents:

    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 apx222dgrd apxdwngrd.sql
  4. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  5. Run the apxdwngrd_cdb.sql script:

    SQL> @apxdwngrd_cdb.sql
  6. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 23.1 in a non-CDB or PDB with Local APEX

To revert to Oracle APEX 23.1 in a non-CDB or PDB with a locally installed APEX:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 23.1 source.

  3. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  4. Run the apxdwngrd.sql script:

    SQL> @apxdwngrd.sql
  5. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 23.1 in a CDB

To revert to Oracle APEX release 23.1 in a CDB:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 23.1 source.

  3. Create a script in the apex directory called apxdwngrd_cdb.sql with the following contents:

    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 apx231dgrd apxdwngrd.sql
  4. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  5. Run the apxdwngrd_cdb.sql script:

    SQL> @apxdwngrd_cdb.sql
  6. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 23.2 in a non-CDB or PDB with Local APEX

To revert to Oracle APEX 23.2 in a non-CDB or PDB with a locally installed APEX:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 23.2 source.

  3. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  4. Run the apxdwngrd.sql script:

    SQL> @apxdwngrd.sql
  5. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 23.2 in a CDB

To revert to Oracle APEX release 23.2 in a CDB:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 23.2 source.

  3. Create a script in the apex directory called apxdwngrd_cdb.sql with the following contents:

    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 apx232dgrd apxdwngrd.sql
  4. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  5. Run the apxdwngrd_cdb.sql script:

    SQL> @apxdwngrd_cdb.sql
  6. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 24.1 in a non-CDB or PDB with Local APEX

To revert to Oracle APEX 24.1 in a non-CDB or PDB with a locally installed APEX:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 24.1 source.

  3. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  4. Run the apxdwngrd.sql script:

    SQL> @apxdwngrd.sql
  5. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 24.1 in a CDB

To revert to Oracle APEX release 24.1 in a CDB:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 24.1 source.

  3. Create a script in the apex directory called apxdwngrd_cdb.sql with the following contents:

    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 apx241dgrd apxdwngrd.sql
  4. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  5. Run the apxdwngrd_cdb.sql script:

    SQL> @apxdwngrd_cdb.sql
  6. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 24.2 in a non-CDB or PDB with Local APEX

To revert to Oracle APEX 24.2 in a non-CDB or PDB with a locally installed APEX:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 24.2 source.

  3. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  4. Run the apxdwngrd.sql script:

    SQL> @apxdwngrd.sql
  5. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 24.2 in a CDB

To revert to Oracle APEX release 24.2 in a CDB:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 24.2 source.

  3. Create a script in the apex directory called apxdwngrd_cdb.sql with the following contents:

    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 apx242dgrd apxdwngrd.sql
  4. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  5. Run the apxdwngrd_cdb.sql script:

    SQL> @apxdwngrd_cdb.sql
  6. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 26.1 in a non-CDB or PDB with Local APEX

To revert to Oracle APEX 26.1 in a non-CDB or PDB with a locally installed APEX:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 26.1 source.

  3. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  4. Run the apxdwngrd.sql script:

    SQL>alter session set "_ORACLE_SCRIPT"=true;
    SQL>@apxdwngrd.sql

    Caution:

    If you encounter the following error when running apxdwngrd.sql:

    ORA-20001: Error in validate_apex: ORA-06575: Package or function WWV_FLOW_GLOBAL is in an invalid state

    Run the following block to complete the downgrade to APEX 26.1:

    begin
        APEX_260100.wwv_flow_db_env_detection.generate_wwv_flow_db_version;
        sys.validate_apex;
    end;
    /
  5. Remove the APEX release schema. See Removing the APEX Release Schema.

Reverting to Release 26.1 in a CDB

To revert to Oracle APEX release 26.1 in a CDB:

  1. If you altered your images directory, revert it back to the release you want to revert to.

  2. Change your working directory to apex in the 26.1 source.

  3. Create a script in the apex directory called apxdwngrd_cdb.sql with the following contents:

    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 apx261dgrd apxdwngrd.sql
  4. Start SQLcl and connect to the database where APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  5. Run the apxdwngrd_cdb.sql script:

    SQL> @apxdwngrd_cdb.sql

    Caution:

    If you encounter the following error when running apxdwngrd_cdb.sql:

    ORA-20001: Error in validate_apex: ORA-06575: Package or function WWV_FLOW_GLOBAL is in an invalid state

    Run the following block to complete the downgrade to APEX 26.1:

    begin
        APEX_260100.wwv_flow_db_env_detection.generate_wwv_flow_db_version;
        sys.validate_apex;
    end;
    /
  6. Remove the APEX release schema. See Removing the APEX Release Schema.

Re-enabling the REST Administration Interface After Downgrading

If the REST Administration Interface was used before the upgrade attempt, you must re-create the APEX_INSTANCE_ADMIN_USER. If the REST Administration Interface was not used, skip this step.

To re-create the APEX_INSTANCE_ADMIN_USER:

  1. Change your working directory to apex in the, XX.X release source (where XX.X is the release number you reverted to).

  2. Start SQLcl and connect to the database where Oracle APEX is installed as SYS specifying the SYSDBA role:

    • On Windows:

      <SYSTEM_DRIVE>:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
    • On UNIX and Linux:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: <SYS_password>
  3. If the no authentication was used, run the following:

    create user apex_instance_admin_user no authentication
  4. If the authentication was used, run the following:

    create user apex_instance_admin_user identified by <random-password> password expire