Para exportar seu banco de dados, você deve usar o utilitário 8i exp:
exp full=y compress=N userid=system/system_pw file=dumpfilename.dmp log=explog.txt
Para importar seu banco de dados, você deve usar o utilitário 10g imp:
imp full=y file=dumpfilename.dmp userid=system/system_pw log=implog.txt
O utilitário 10g imp é compatível com versões anteriores, então você deve poder exportar usando o utilitário 8i exp e importar com o 10g imp. Ambos os utilitários têm um parâmetro "help=y" que exibirá uma lista de parâmetros que você pode especificar. Há muito poucos; na maior parte os padrões estão bem. Dependendo do tamanho do seu banco de dados, isso pode demorar um pouco.
Criar um único arquivo SQL não é tão fácil quanto parece à primeira vista, devido às dependências circulares de determinados objetos. Além disso, não é tão eficiente para criar ou executar - exp/imp é muito mais. Se o seu objetivo é simplesmente mover o banco de dados para uma nova versão do Oracle, exp/imp é o caminho mais simples.
Alguns documentos para ajudá-lo:orafaq.com; Oracle 8i Utilities (oracle.com); Utilitários Oracle 10g (oracle.com) .