Lomadee, uma nova espécie na web. A maior plataforma de afiliados da América Latina.

segunda-feira, 12 de dezembro de 2011

Mapeando Dados Oracle para SQL Server

Mapeamento de tipo de dados para Publicadores Oracle

SQL Server 2008 R2
Tipos de dados de Oracle e tipos de dados de MicrosoftSQL Server nem sempre correspondem exatamente. Onde possível, o tipo de dados correspondente é selecionado automaticamente ao publicar uma tabela de Oracle. Em casos em que o mapeamento de um único tipo de dados não é claro, mapeamentos alternativos de tipo de dados são fornecidos. Para obter informações sobre como selecionar mapeamentos alternativos, consulte "Especificando Mapeamentos Alternativos de Tipos de Dados”, mais adiante neste tópico.
A tabela a seguir mostra como os tipos de dados são mapeados por padrão entre o Oracle e o SQL Server quando os dados são movidos de um Publicador Oracle para o Distribuidor do SQL Server. A coluna de Alternativas indica se mapeamentos alternativos estão disponíveis.
Tipo de dados de OracleTipos de dados SQL ServerAlternativas
BFILEVARBINARY(MAX)Sim
BLOBVARBINARY(MAX)Sim
CHAR([1-2000])CHAR([1-2000])Sim
CLOBVARCHAR(MAX)Sim
DATEDATETIMESim
FLOATFLOATNão
FLOAT ([1-53])FLOAT ([1-53])Não
FLOAT ([54-126])FLOATNão
INTNUMERIC(38)Sim
INTERVALDATETIMESim
LONGVARCHAR(MAX)Sim
LONG RAWIMAGESim
NCHAR([1-1000])NCHAR([1-1000])Não
NCLOBNVARCHAR(MAX)Sim
NUMBERFLOATSim
NUMBER([1-38])NUMERIC([1-38])Não
NUMBER([0-38],[1-38])NUMERIC([0-38],[1-38])Sim
NVARCHAR2 ([1-2000])NVARCHAR([1-2000])Não
RAW ([1-2000])VARBINARY([1-2000])Não
REALFLOATNão
ROWIDCHAR([1-2000])Não
TIMESTAMPDATETIMESim
TIMESTAMP(0-7) DATETIMESim
TIMESTAMP(8-9) DATETIMESim
TIMESTAMP(0-7) WITH TIME ZONEVARCHAR(37)Sim
TIMESTAMP(8-9) WITH TIME ZONEVARCHAR(37)Não
TIMESTAMP(0-7) WITH LOCAL TIME ZONEVARCHAR(37)Sim
TIMESTAMP(8-9) WITH LOCAL TIME ZONEVARCHAR(37)Não
UROWIDCHAR(18)Não
VARCHAR2([1-4000])VARCHAR([1-4000])Sim
Pense nos seguintes problemas de tipo de dados ao replicar dados de um banco de dados de Oracle.

Tipos de dados sem suporte

Os seguintes tipos de dados não têm suporte; não podem ser replicadas as colunas que têm estes tipos:
  • Tipos de objeto
  • Tipos XML
  • Varrays
  • Tabelas aninhadas
  • Colunas que usam REF

O tipo de dados de DATE.

As datas no SQL Server vão de 1753 a.C. a 9999 d.C. enquanto as datas no Oracle vão de 4712 a.C. a 4712 d.C. Se uma coluna do tipo DATE contém valores que estão fora do intervalo do SQL Server, selecione um tipo de dados alternativo para a coluna, que é VARCHAR(19).

Tipos FLOAT e NUMBER

A escala e precisão especificadas durante o mapeamento de tipos de dados FLOAT e NUMBER dependem da escala e precisão especificadas para a coluna usando o tipo de dados no banco de dados do Oracle. A precisão é o número de dígitos em um número. A escala é o número de dígitos à direita da casa decimal em um número. Por exemplo, o número 123,45 tem uma precisão de 5 e uma escala de 2.
O Oracle permite números a serem definidos com a escala maior que a precisão, tal como NUMBER(4,5), mas o SQL Server requer que a precisão seja igual ou maior que a escala. Para garantir que não há truncamento de dados, se a escala for maior que a precisão no Publicador Oracle, a precisão é definida igual à escala quando o tipo de dados for mapeado: NUMBER (4,5) ele seria mapeado como NUMERIC (5,5).
Observação Observação
Se você não especificar a escala e a precisão para NUMBER, o SQL Server usa o padrão máximo de escala (8) e precisão (38). É recomendável que você defina uma escala e precisão específicas no Oracle para melhor armazenamento e desempenho quando os dados forem replicados.

Tipos de objeto grande

O Oracle suporta até 4 gigabytes (GB), enquanto que o SQL Server suporta até 2 GB. Dados replicados acima de 2 GB são truncados.
Se uma tabela de Oracle incluir uma coluna de BFILE, os dados para a coluna serão armazenados no sistema de arquivos. A conta do usuário administrativo da replicação deve receber acesso ao diretório no qual os dados estão armazenados usando a seguinte sintaxe:
GRANT READ ON DIRECTORY <directory_name> TO <replication_administrative_user_schema>
Para obter mais informações sobre tipos de objetos grandes, consulte a seção "Considerações sobre objetos grandes" em Considerações de design e limitações para Editores Oracle.
Tipicamente, o padrão de mapeamento de tipo de dados é apropriado, porém para muitos tipos de dados do Oracle, você pode selecionar um mapeamento de tipo de dados a partir de um conjunto de mapeamentos alternativos, ao invés de usar o padrão. Há dois modos para especificar os mapeamentos alternativos:
  • Substitua o padrão em uma base por artigo usando procedimentos armazenados ou o Assistente para Nova Publicação .
  • Globalmente altere o padrão para todos os artigos futuros usando procedimentos armazenados (não são alterados os padrões para os artigos existentes).
Para especificar mapeamentos alternativos de tipo de dados

Nenhum comentário:

Postar um comentário

Related Posts Plugin for WordPress, Blogger...