Especificar mapeamentos de tipo de dados para um Publicador Oracle
Este tópico descreve como especificar mapeamentos de tipo de dados para um Publicador Oracle no SQL Server 2012 usando o SQL Server Management Studio ou o Transact-SQL. Embora um conjunto de mapeamentos de tipo de dados padrão seja fornecidos para Publicadores Oracle, pode ser necessário especificar diferentes mapeamentos para determinada publicação.
Neste tópico
Para especificar mapeamentos de tipo de dados para um Publicador Oracle, usando:
SQL Server Management Studio
Transact-SQL
Usando o SQL Server Management Studio
Especifique mapeamentos de tipos de dados na guia Mapeamento de Dados da caixa de diálogo Propriedades de Artigo - <Artigo>. Eles estão disponíveis na página Artigos do Assistente para Nova Publicação e na caixa de diálogo Propriedades de Publicação - <Publicação>. Para obter mais informações sobre como usar o assistente e acessar a caixa de diálogo, consulte Criar uma publicação de um banco de dados Oracle e Visualizar e modificar as propriedades da publicação.
Para especificar um mapeamento de tipo de dados
Na página Artigos do Assistente para Nova Publicação ou na caixa de diálogo Propriedades da Publicação- <Publicação>, selecione uma tabela e clique Propriedades do Artigo.
Clique em Definir as Propriedades do Artigo Realçado da Tabela.
Na guia Mapeamento de Dados da caixa de diálogo Propriedades de Artigo - <Artigo>, selecione os mapeamentos da coluna Tipo de Dados de Assinante:
Para alguns tipos de dados, há somente um mapeamento possível; em tal caso, a coluna na grade de propriedades é somente leitura.
Para alguns tipos, é possível selecionar mais de uma opção. A Microsoft recomenda que você use o mapeamento padrão, a menos que seu aplicativo exija um mapeamento diferente. Para obter mais informações, consulte Mapeamento de tipo de dados para Publicadores Oracle.
Clique em OK.
[Top]
Usando Transact-SQL
Você pode especificar programaticamente mapeamentos de tipo de dados personalizados usando procedimentos armazenados de replicação. Você pode também definir os mapeamentos padrão que são usados ao mapear tipos de dados entre o Microsoft SQL Server e um DBMS (sistema de gerenciamento de banco de dados) não SQL Server. Para obter mais informações, consulte Mapeamento de tipo de dados para Publicadores Oracle.
Para definir mapeamentos de tipo de dados personalizados ao criar um artigo que pertence a uma publicação Oracle
Se já não houver uma, crie uma publicação Oracle.
No Distribuidor, execute sp_addarticle. Especifique um valor 0 para @ use_default_datatypes. Para obter mais informações, consulte Defina um Artigo.
No Distribuidor, execute sp_helparticlecolumns para exibir o mapeamento existente para uma coluna em um artigo publicado.
No Distribuidor, execute sp_changearticlecolumndatatype. Especifique o nome do Editor Oracle para @publisher, assim como para @publication, @article e @column, para definir a coluna publicada. Especifique o nome do tipo de dados do SQL Server a mapear para @type, assim como para @length, @precision e @scale, onde aplicável.
No Distribuidor, execute sp_articleview. Isso cria a exibição usada para gerar o instantâneo da publicação Oracle.
Para especificar um mapeamento como mapeamento padrão para um tipo de dados
(Opcional) No Distribuidor de qualquer banco de dados, execute sp_getdefaultdatatypemapping. Especifique @source_dbms, @source_type, @destination_dbms, @destination_version e quaisquer outros parâmetros necessários para identificar a DBMS de origem. As informações sobre o tipo de dados atualmente mapeados no DBMS de destino são retornadas usando os parâmetros de saída.
(Opcional) Para o Distribuidor em qualquer banco de dados, execute sp_helpdatatypemap. Especifique @source_dbms e quaisquer outros parâmetros necessários para filtrar o conjunto de resultados. Observe o valor de mapping_id para o mapeamento desejado no conjunto de resultados.
(Opcional) No Distribuidor em qualquer banco de dados, execute sp_getdefaultdatatypemapping.
Se você souber o valor desejado de mapping_id obtido na etapa 2, especifique-o para @mapping_id.
Se não souber o @source_dbms, especifique os parâmetros @source_dbms, @source_type, @destination_dbms, @destination_type e quaisquer outros parâmetros necessários para identificar um mapeamento existente.
Para localizar tipos de dados válidos para um determinado tipo de dados Oracle
- No Distribuidor em qualquer banco de dados, execute sp_helpdatatypemap. Especifique um valor de ORACLE para @source_dbms e quaisquer outros parâmetros necessários para filtrar o conjunto de resultados.
Exemplos (Transact-SQL)
Este exemplo altera uma coluna com um tipo de dados Oracle de NUMBER, de modo que ele seja mapeado para o tipo de dados numeric(38,38) do SQL Server, em vez do tipo de dados padrão float.
EXEC sp_changearticlecolumndatatype
@publication = 'OraPublication',
@publisher = 'OraPublisher',
@article = 'OraArticle',
@column = 'OraArticleCol',
@type = 'numeric',
@scale = 38,
@precision = 38;
GO
Este exemplo de consulta retorna os mapeamentos padrão e alternativos para o tipo de dados CHAR do Oracle 9.
EXEC sp_helpdatatypemap
@source_dbms = N'ORACLE',
@source_version = 9,
@source_type = N'CHAR';
GO
Este exemplo de consulta retorna os mapeamentos padrão para o tipo de dados NUMBER do Oracle 9 quando ele é especificado sem uma escala ou precisão.
EXEC sp_helpdatatypemap
@source_dbms = N'ORACLE',
@source_version = 9,
@source_type = N'NUMBER',
@defaults_only = 1;
GO
[Top]
Consulte também
Conceitos
Mapeamento de tipo de dados para Publicadores Oracle
Replicação de banco de dados heterogênea
Conceitos dos procedimentos armazenados do sistema de replicação