Gerei um EXPDAT.DMP
arquivo de um banco de dados Oracle com o comando:
exp userid=usr/pass@db owner=own rows=n compress=n
Em seguida, executei o seguinte comando para gerar um arquivo contendo as instruções 'Create Table...':
imp userid=usr/pass@db full=y indexfile=output.sql
Isso é ótimo para as instruções Create Table, mas também quero o código-fonte Create Procedure / Create Function / Create View. Posso vê-los lá no arquivo .DMP, mas não encontrei uma maneira de extraí-los.
É possível extrair essas informações do arquivo EXPDAT.DMP? Ou terei que usar outro método?
O objetivo é ter a fonte exportável para arquivos que podem ser controlados por fonte.
Se você tiver acesso ao banco de dados original, eu usaria DBMS_METADATA.GET_DDL.
Você pode criar um script com UTL_FILE para que ele passe por cada objeto (de USER_OBJECTS), use o nome e o tipo para extrair o objeto e, em seguida, grave-o em um arquivo que tenha a convenção de nomenclatura apropriada.
Será muito mais limpo do que tentar dividir um único arquivo.
Use o parâmetro SHOW para ver o DDL:
Se você pode usar o utilitário datapump(expdp,impdp), em vez da exportação tradicional, o comando sqlfile pode ser usado.
-- Tome expdp
-- abaixo do impdp não importará, apenas gerará todo o código do objeto no arquivo fullcode.sql