Skip to content

Instantly share code, notes, and snippets.

@marcosvidolin
Created November 11, 2013 12:31
Show Gist options
  • Save marcosvidolin/7412516 to your computer and use it in GitHub Desktop.
Save marcosvidolin/7412516 to your computer and use it in GitHub Desktop.
Cópia de dados entre duas tabelas
Este comando efetua a cópia de dados entre duas tabelas dentro de um mesmo banco, ou entre bancos diferentes.
Muito útil para equalizar dados para testes, simulações de erros, etc...
A sintaxe é:
COPY FROM <db> TO <db> <opt> <tbl> {<<cls>>} USING <sel>
Onde:
<db> : string de banco de dados, ex.: usuário/senha@banco1
<opc>: Uma das palavras chaves: APPEND, CREATE, INSERT ou REPLACE
<tbl>:Nome da tabela de destino.
<cls>:Lista de sinônimos de colunas separadas por virgulas
<sel>: Qualquer instrução SQL SELECT valida. Lembrando que o resultado deve conter a mesma estrutura da tabela destino.
 
Descrição das palavras chaves.
· CREATE – se o nome de destino já existir, uma mensagem de erros sera exibida.
· REPLACE – se a tabela de destino já existir ela será "dropada" e criada novamente e os dados serão copiados.
· INSERT – Se a tabela de destino existir, os dados serão copiados.
· APPEND – Realiza o Insert em uma tabela que já contém dados.
Exemplo:
SQL> COPY FROM usuario/senha@BANCO1 TO usuario/senha@BANCO2 CREATE TABELA_DESTINO USING SELECT * FROM TABELA_ORIGEM ;
 
Vale ressaltar que podemos fazer isso para o mesmo banco de dados, no caso da tabela conter campo LONG essa é uma boa opção.
Estes comando é rodado através de uma Command Window ou através do sql*plus.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment