We have an old server running Oracle 8i.

Is it going to be possible to directly update it to something newer like Oracle 12c, or would that require a complete uninstall and re-install?

If we had to completely uninstall and re-install, is it then a case of importing the database dump from Oracle 8i and it will be converted, or is that also a manual task?


Thanks for everyones input. I have checked with our application vendor (the ones who originally installed Oracle 8i for us around 10 years ago) and their application that we use does work with Oracle 12c but they are not willing to do the update for us.

They have basically said that we should do the update, preferably on a new server and at that point they would be willing to get involved to check their application out using the new database version etc.

Is there some way to find Oracle experts capable of doing this job (preferably UK based)? I'm pretty new to Oracle (past experience is mainly Microsoft SQL Server), day to day management/security, scripting etc. is ok but I'd rather have someone in who has done this (many times?) before.

Thanks again!

  • Transportable tablespaces are the way to go. 8i is the first supported version that can use them to go directly to 12c, as long as it isn't cross-platform
    – Philᵀᴹ
    Mar 4, 2015 at 18:28
  • @Phil Thanks. I did post a little update to the question. Can you comment on it maybe?
    – SMW
    Mar 5, 2015 at 22:25
  • there is a manual covering upgrade of databases docs.oracle.com/database/121/UPGRD/toc.htm
    – miracle173
    Jun 22, 2015 at 9:28

2 Answers 2


There is no in-place upgrade possible but the existing exp utility is still supported for importing dmp files.

Some of the issues you need to research are:

  • I have taken an export from an 8i database and imported it into an 11g with no issues. Importing into 12 should not be a problem but planning is everything!
  • will you use the same character set? Often organizations start with western only and need to use UTF16 for more compatibility with other languages.
  • do yourself a favour and do an install on a new machine with new hardware. 12 requires more of everything, memory, hard drive.
  • many 8i parameters are not supported so you need to establish if there are any custom settings that you need equivalents for

Of course this would need to be tested.

  • The biggest pain might be the RBO->CBO transition.
    – Philᵀᴹ
    Mar 4, 2015 at 17:24
  • @Phil correct but without some idea of the number of users, size of the database files, type of application we are left to speculate
    – kevinskio
    Mar 4, 2015 at 17:39
  • @Phil, I don't think so. Wrong execution plans "only" makes your application to run with poor performance. However others changes, e.g. due to security may cause your application not working at all. Mar 5, 2015 at 13:19

One option would be to use something like Erwin or Toad to reverse engineer the schema, create a new 11g/12c database with all of the tablespaces that you need, generate a script that would create all of the schemas and their types and tables without constraints, create the schemas and tables, create a db link to the old database from the new database, do insert into for each table, generate and run a script to create all of the constraints, views and stored procedures. You will want to script it and run the conversion more than once while you work out the details. You also want to check your stored procedures for any code for set transaction commands. As you probably know rollback segments went away with 9i, thus you can no longer set certain code to use a particular rollback segment. You will also be switching from dictionary managed table spaces to locally managed table spaces. Which means that you want to ignore any segment information in your tables. Just use automatic storage for your segments and let the database track extent size and make sure that pctincrease is set to 0. In addition check your block size 8k is usually good for most applications.

If you have a lot of data, you can split the inserts into multiple scripts that run from different sessions, thus you can do it in parallel. While you can do an export/import you don't want to import the data dictionary from 8i and you don't want to keep the old extent sizes.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.