Exportação de dados do SQL Server para o Oracle com assistente de importação do SQL Server

Importação de dados do SQL para o Oracle com assistente de importação do SQL Server

Esses dias precisei exportar várias tabelas que tinha em minha base de dados SQL Server para uma base de dados no Oracle, uma opção interessante para fazer isso é utilizando o assistente de importação do SQL Server. Foi bem fácil e rápido fazer isso, a única coisa que não gostei é que na versão Express do SQL não é possível salvar os dados da importação e se for necessário fazer novamente, é preciso montar tudo do começo.
Vamos ao passo-a-passo:

A primeira coisa a ser feita aqui é iniciar assistente de importação SQL Server, que geralmente fica em Iniciar -> (Todos) Programas -> Microsoft SQL Server -> Importar e Exportar Dados.

Agora vamos definir a origem de nossos dados em nosso servidor SQL, precisamos ter apenas, nome do servidor/ip e porta, usuário e senha, após colocar esses dados basta escolher a base de dados que contém as tabelas que vamos exportar.

Vamos para a próxima fase que será definir o local de destino dos dados, nosso servidor Oracle. Para isso é necessário selecionar a opção “.Net Framework Data Provider for Oracle” e configurar os dados de conexão com nosso servidor que são data source (composto por [servidor]:[porta]/[serviço]), usuário e senha.

Agora vamos selecionar a primeira opção “Copiar dados de uma ou mais tabelas ou exibições”


Nesse passo vamos selecionar as tabelas e view’s do SQL Server que desejamos levar para nosso Oracle.


É muito importante “Editar Mapeamentos” das tabelas, pois há tipos de dados que o assistente de importação não consegue resolver, e por isso é necessário que nós decidamos qual é o melhor tipo para receber esse dado no Oracle.

No momento da edição de mapeamento marque a opção “Ignorar e recriar tabela de destino”

Por exemplo
De:

Para:

Após editar todos os mapeamentos vamos validar inconsistências nas tabelas que serão importadas e voltar para configurar se for necessário.

Agora vamos apenas para o próximo passo, apenas selecione “Executar imediatamente”.


Agora veja o que o assistente exibe e valide dados antes efetuar importação.


Agora basta concluir e acompanhar.

Acompanhamento

No erro volte e refaça a configuração.


Dica DateTime no SQL vira DATE no Oracle.


Espero que isso contribua para o crescimento da comunidade.

Um forte abraço.

Problemas com collatation – SQL Server – Cannot resolve collation conflict for equal to operation.

No SQL Server, um collation pode ser definido no nível da coluna, quando comparamos duas colunas com collations diferentes em uma query obtemos o erro “Cannot resolve collation conflict for equal to operation.”.


SELECT
	[campos]
FROM
	Tabela1
INNER JOIN
	Tabela2
WHERE
	Tabela1.Campo = Tabela1.Campo

Se as colunas Campo da Tabela1 e Tabela2 tiverem collation’s diferentes, isso gerará o erro de conflito de collation’s. Para solucionar esse conflito podemos utilizar o comando COLLATE DATABASE_DEFAULT após os campos que estão sendo comparados.

SELECT
	[campos]
FROM
	Tabela1
INNER JOIN
	Tabela2
WHERE
	Tabela1.Campo COLLATE DATABASE_DEFAULT = Tabela1.Campo COLLATE DATABASE_DEFAULT

O collation pode afetar os seguintes pontos de nossa query:

  1. Clausula Where
  2. Join
  3. Funções
  4. Bases de dados

Até a próxima.

Case sensitive no SQL Server

Suponha que você precise pesquisar pelo no banco de dados um nome exatamente como ele foi inserido, vamos supor que seja aaaA, mas no seu banco de dados você já tem os valores AAAA, aaaa, AaaA e aaaA, a query abaixo retornará 4 linhas como resultado:

SELECT * FROM tabela WHERE coluna = 'aaaA'

Para fazer o uso de case sensitive nessa coluna basta adicionar o collation como abaixo:

SELECT * FROM tabela WHERE coluna COLLATE Latin1_General_CS_AS = 'aaaA'

Esse collation faz com que a busca seja feita com uso de case sensitive

Para alterar o collation da tabela definitivamente basta alterar a tabela da seguinte maneira:

ALTER TABLE tabela
ALTER COLUMN coluna CHAR(4) COLLATE Latin1_General_CS_AS

Para saber o collation de uma tabela na base de dados para executar o comando abaixo, no segundo resultset você terá o collation

SP_HELP tabela

Espero que esse artigo tenha contribuído para o seu crescimento.

Até a próxima.