Estou pensando no que mysqldump
ou pg_dump
estão fazendo. Assim, eles despejam um banco de dados ativo em um arquivo textual contendo as consultas SQL, que reproduzem todo esse banco de dados. No MySQL e no PostgreSQL, este é o formato normal de dump de banco de dados.
Existe no Oracle? Como pode ser feito?
Não é absolutamente um problema se não for uma coisa padrão da Oracle. Preciso de uma solução para o problema. Exportar tabelas únicas não é suficiente, estou pedindo o dump de um banco de dados inteiro.
É um ambiente de desenvolvedor reduzido de um grande projeto (com banco de dados de vários milhões de linhas), mas ainda com centenas de tabelas e uma estrutura muito complexa. E, eu quero jogar com ele rápido . Enquanto estou brincando com ele, também preciso ser capaz de executar modificações complicadas nele. Em um dump binário eu não posso fazer isso, em um textual eu posso.
Existe um utilitário semelhante no ambiente Oracle chamado Data Pump.
Use a ferramenta de linha de comando expdp para executar a exportação completa do banco de dados.
Exemplo:
Em seguida, pode usar
impdp
para importá-lo em outro banco de dados.Exemplo:
Se você especificar
DUMPFILE
o parâmetro, ele grava um arquivo binário chamado arquivo de despejo. Com o parâmetro SQLFILE (SQLFILE=/my/file/name.sql
) você pode obter todo o SQL DDL que Import teria executado.Mais sobre isso depende dos requisitos.
A Documentação da Oracle explica mais do que posso aqui.
Visão geral do Oracle Data Pump
Não existe tal coisa no próprio banco de dados.
Você pode fazer algo semelhante no SQL Developer, com a ferramenta Database Export.
Como exportar dados usando o SQL Developer
Com a ferramenta Tools / Database Export, você pode especificar os objetos que deseja exportar, então o SQL Developer gera um arquivo SQL para recriá-los, com os dados como instruções insert.
Como os requisitos exatos são vagos, vou postar isso: Você também pode escrever os dados que deseja em tabelas externas. Isso forneceria os dados em (por exemplo) formato CSV que você poderia usar para importar usando a funcionalidade de importação de outro banco de dados.
Esteja ciente de que apenas obter os dados como instruções DDL/DML pode não ser suficiente para fazer o que suspeito que você está tentando fazer. Existem diferenças nos tipos de dados, comprimentos, formatos e muito mais que podem causar problemas se você estiver migrando de um tipo de instância para outro.
Em alguns casos, ferramentas como Flyway ou Liquebase podem ser úteis para você, eu acho. Parece que eles podem fazer dump em SQL, XML e talvez outra coisa. Essas ferramentas não são muito fáceis de usar, mas parecem muito mais flexíveis que o SQL Developer. Por exemplo, se você precisar filtrar dados antes de fazer o upload.