Especificar mapeamentos de tipo de dados para um Publicador Oracle

Aplica-se a:SQL Server

Este tópico descreve como especificar mapeamentos de tipo de dados para um Editor Oracle no SQL Server 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

Como usar o SQL Server Management Studio.

Especifique mapeamentos de tipo de dados na guia Mapeamento de Dados da caixa de diálogo Propriedades do Artigo – <Artigo>. Isso está disponível 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 Exibir e modificar as propriedades da publicação.

Para especificar um mapeamento de tipo de dados

  1. 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 em Propriedades do Artigo.

  2. Clique em Definir as Propriedades do Artigo Realçado da Tabela.

  3. Na guia Mapeamento de Dados da caixa de diálogo Propriedades do 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 .

  4. Selecione OK.

Usando o 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) que não seja do 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

  1. Se já não houver uma, crie uma publicação Oracle.

  2. No Distribuidor, execute sp_addarticle. Especifique um valor 0 para @ use_default_datatypes. Para obter mais informações, consulte Define an Article.

  3. No Distribuidor, execute sp_helparticlecolumns para exibir o mapeamento existente para uma coluna em um artigo publicado.

  4. No Distribuidor, execute sp_changearticlecolumndatatype. Especifique o nome do Editor Oracle para @publisher, assim como para @publication, @articlee @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.

  5. 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

  1. (Opcional) No Distribuidor de qualquer banco de dados, execute sp_getdefaultdatatypemapping. Especifique @source_dbms, @source_type, @destination_dbms, @destination_versione 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.

  2. (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.

  3. (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_typee 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

  1. 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 CHARdo 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

Confira também

Mapeamento de tipo de dados para Publicadores Oracle
Replicação de banco de dados heterogênea
Replication System Stored Procedures Concepts
Configurar um Publicador Oracle