Oracle database upgrade issue

oracleoracle-10gupgrade

Currently i'm using Oracle 10g XE database and want to upgrade to Oracle 11g XE. When i try to run the installer, it fails because of running instance. I searched the internet and got to know i have to uninstall 10g XE before installing 11g. The problem is i want to retrieve my schemas in 11g. So as stated here, i tried,

exp system/<system_password>@<database> file=<user>.dmp owner=<user>

but i got the following error

SP2-0734: unknown command beginning "exp system..." - rest of line ignored.

i read on the internet i tried using

SQL> expdp system/password full=Y directory=DUMP_DIR dumpfile=DB10G.dmp logfile=expdpDB10G.log

but got

SP2-0734: unknown command beginning "expdp syst..." - rest of line ignored.

is there a way (preferably GUI) to just back up my data before uninstall so that it can be recovered after upgrade? I know complete databses can be put into an sql script for mysql using phpmyadmin. Does anything similar exist for oracle as well??

Is recreating a table using netbeans a good solution?

Best Answer

exp and expdp are OS command-line programs. That's why SQL*Plus doesn't recognise them. You need to fire up a console (shell) window.

Note that you can run these wherever makes more sense, your local PC or on the database server itself, provided the Oracle client software is installed.

There is an in-database API for Datapump. It's the PL/SQL package, DBMS_DATAPUMP. Find out more. However, for what your want to do, expdp makes more sense.


" i'm quite amazazed that nowhere in the command i have specified anything regarding oracle databse" (sic)

Welcome to the magic of paths and scope. Oracle exp is the first program of that name your computer found in your current direction or by traversing the command path. So that's what it executed.

exp is an Oracle proprietary utility for exporting data from an Oracle database. It is never going to export anything else. You didn't have to specify a target database because your environment is XE with only one in scope. In an enterprise environment you would probably have to specify a database name in the connection string, because there could be several databases on your network.