1. Download patch 4547817 (approximately 543 MB) from MetaLink and unzip it in a temporary directory, e.g. C:\stage\4547817.
  2. Shutdown database and all processes
  3. Run C:\stage\4547817\Disk1\setup.exe
  4. Click Next
  5. Select Oracle home (e.g. C:\ora\db10) and click Next
  6. Click Install
  7. When you are told that "The Installation of Oracle Database 10g Release 2 Patch Set 1 was successful", click Exit

  8. Start the database processes:
    net start Oracledb10TNSListener
    net start OracleServiceORCL
    

  9. Start the database without mounting it:
    cd /d C:\ora\db10\bin
    sqlplus sys as sysdba
    startup nomount
    

  10. Ensure that SHARED_POOL_SIZE and JAVA_POOL_SIZE are set to 150M or more

  11. Similarly, ensure that SGA_TARGET is at least 50 MB greater than the sum of SHARED_POOL_SIZE and JAVA_POOL_SIZE

  12. Shutdown the database and start it in UPGRADE mode:
    shutdown
    startup upgrade
    

  13. Run the upgrade script:
    spool C:\ora\db10\install\10202upgrade.log
    @C:\ora\db10\rdbms\admin\catupgrd.sql
    spool off
    

  14. Check the 10202upgrade.log file for errors - it should contain something like this at the end:
    Oracle Database 10.2 Upgrade Status Utility           07-27-2007 15:24:53
    .
    Component                                Status         Version  HH:MM:SS
    Oracle Database Server                    VALID      10.2.0.2.0  00:10:06
    JServer JAVA Virtual Machine              VALID      10.2.0.2.0  00:13:54
    Oracle XDK                                VALID      10.2.0.2.0  00:00:37
    Oracle Database Java Packages             VALID      10.2.0.2.0  00:00:38
    Oracle Text                               VALID      10.2.0.2.0  00:00:15
    Oracle XML Database                       VALID      10.2.0.2.0  00:01:01
    Oracle Data Mining                        VALID      10.2.0.2.0  00:00:24
    OLAP Analytic Workspace                   VALID      10.2.0.2.0  00:00:23
    OLAP Catalog                              VALID      10.2.0.2.0  00:00:54
    Oracle OLAP API                           VALID      10.2.0.2.0  00:00:45
    Oracle interMedia                         VALID      10.2.0.2.0  00:04:28
    Spatial                                   VALID      10.2.0.2.0  00:00:41
    Oracle Ultra Search                       VALID      10.2.0.2.0  00:00:21
    Oracle Expression Filter                  VALID      10.2.0.2.0  00:00:10
    Oracle Enterprise Manager                 VALID      10.2.0.2.0  00:00:44
    Oracle Rule Manager                       VALID      10.2.0.2.0  00:00:09
    .
    Total Upgrade Time: 00:35:36
    

  15. Restart the database:
    shutdown
    startup
    

  16. Run the utlrp script and then check to see if there are any more invalid objects:
    @C:\ora\db10\rdbms\admin\utlrp.sql
    
    select count(*) from dba_objects where status = 'INVALID';
    
    select object_name, object_type, owner
    from dba_objects
    where status = 'INVALID';
    

  17. Shutdown the database, the database processes, and restart Windows