Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Douglas Tondo

importar SQL para Oracle

Recommended Posts

Pessoal, estou com uma duvida. Como posso fazer a importação da base do SQL para o Oracle.

 

Preciso importar apenas os dados. Os nomes das tabelas estão iguais e as colunas também... porém há algumas colunas que o nome foi modificado.

 

 

alguma dica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Oracle tem o Loader , ferramenta que eu nunca usei e permite importar arquivos textos.

 

Uma solução seria criar arquivos de script para gerar comandos de insert em arquivos texto , porgramas como Sqlnavigator tem este tipo de coisa que funciona para poucas tabelas.Não é muito difícil de fazer se você soubar quais são as tabelas de dicionário de dados dá para gerar um bloco que gera o código.

 

Um problema passa a ser os blobs como você falou pois os formatos podem ser diferentes.

 

Uma terceira solução seria uma aplicação num programa em delphi* ou Vb ou java que lesse um banco e gravasse outro.Dá muito trabalho dependendo do número de tabelas.

 

De qualquer maneira nunca fiz uma importação deste porte e não sei se posso ajuda-lo muito.

 

* = O Delphi tem por exemplo tem o Datapump

 

Rode esta pesquisa no Google

[data migration sql server to oracle free]

trouxe algumas coisas promissoras

Compartilhar este post


Link para o post
Compartilhar em outros sites

raapz.. encontrei uma solução mais fácil.. mas trabalhosa... o "SQL Server Enterprise Mng"

 

entrando aqui...

Imagem Postada

depois aqui:

Imagem Postada

note que o destacado é o "pacote de transformação".. que de tem que fazer tabela por tabela...

 

é demorado.. mas nao tem muitos "efeitos colaterais".. a nao ser nos valores TRUE e FALSE do SLQ que viram '0' pra false e '-1' para true... ai tu faz uma rotinhinha que arruma isso tipo essa:

 

/********************************************************************************

************/

create or replace PROCEDURE corrige_val_inv AS

CURSOR TABLE_NAME_C IS SELECT table_name FROM user_tables WHERE table_name NOT LIKE 'BIN$%'; -- esse where é para o caso de ter tabelas deletadas ai tu nao precisa fazer isso nas tabelas que ja foram deletadas né?... é uma balaca essencial

 

 

BEGIN

DISABLE_FKS;

DISABLE_TRIGGERS;

FOR table_rec IN TABLE_NAME_C

LOOP

FOR column_rec IN (SELECT column_name FROM all_tab_columns where table_name = table_rec.table_name AND DATA_TYPE = 'NUMBER' AND DATA_PRECISION = 1)

LOOP

EXECUTE IMMEDIATE 'UPDATE '|| table_rec.table_name ||' SET '|| column_rec.column_name ||' = '|| 1 ||' WHERE '|| column_rec.column_name ||' = '|| -1;

--INSERT INTO TBD (tabela, coluna, numero) VALUES (table_rec.table_name, column_rec.column_name, numero);

END LOOP;

END LOOP;

ENABLE_TRIGGERS;

ENABLE_FKS;

END corrige_val_inv;

/********************************************************************************

************/

 

 

obs: nao se esquecendo que tenque fazer as 2 conexoes.. a do banco oracle e a do slq..

 

se fz essas conexões ali na aba "connection" da pakage..

 

obs2: vai em outros... para selecionar a conexao com o oracle..

 

 

espero ter ajudado com esse mini tuto ai :D

 

falow!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.