Partilhar via


Tipos de dados do Integration Services

Quando dados entram em um fluxo de dados em um pacote, a fonte que extrai esses dados converte-os em um tipo de dados do Integration Services. Dados numéricos são atribuídos a um tipo de dados numéricos, dados de cadeia são atribuídos a um tipo de dados de caractere e datas são atribuídas a um tipo de dados de data. Outros dados, como GUIDs e BLOBs, também são atribuídos aos tipos de dados apropriados do Integration Services. Se dados tiverem um tipo de dados que não pode ser convertido em um tipo de dados do Integration Services, ocorrerá um erro.

Alguns componentes de fluxo de dados convertem tipos de dados entre os tipos de dados do Integration Services e os tipos de dados gerenciados do Microsoft .NET Framework. Para obter mais informações sobre o mapeamento entre o Integration Services e tipos de dados gerenciados, consulte Trabalhando com tipos de dados no fluxo de dados.

A tabela a seguir lista os tipos de dados do Integration Services. Alguns dos tipos de dados na tabela têm informações de precisão e escala que se aplicam a eles. Para obter mais informações sobre precisão e escala, consulte Precisão, escala e comprimento (Transact-SQL).

Tipo de dados

Descrição

DT_BOOL

Um valor booliano.

DT_BYTES

Um valor de dados binários. O comprimento é variável e o comprimento de máximo é 8000 bytes.

DT_CY

Um valor de moeda. Este tipo de dados é um inteiro assinado de oito bytes com uma escala de 4 e precisão máxima de 19 dígitos.

DT_DATE

Uma estrutura de data que consiste em ano, mês, dia, hora, minuto, segundos e segundos fracionários. Os segundos fracionários têm uma escala fixa de 7 dígitos.

O tipo de dados DT_DATE é implementado com o uso de um número de ponto flutuante de 8 bytes. Dias são representados por incrementos de números inteiros, iniciando em 30 de dezembro de 1899 e meia-noite como zero hora. Valores de hora são expressos como o valor absoluto da parte fracionária do número. No entanto, um valor de ponto flutuante não pode representar todos os valores reais, portanto, há limites no intervalo de datas que podem ser apresentados em DT_DATE.

Por outro lado, DT_DBTIMESTAMP é representado por uma estrutura que internamente tem campos individuais para ano, mês, dia, horas, minutos, segundos e milissegundos. Este tipo de dados tem limites maiores em intervalos de datas que pode apresentar.

DT_DBDATE

Uma estrutura de data que consiste em ano, mês e dia.

DT_DBTIME

Uma estrutura de hora que consiste em hora, minuto e segundo.

DT_DBTIME2

Uma estrutura de hora que consiste em hora, minuto, segundo e segundos fracionários. Os segundos fracionários têm uma escala máxima de 7 dígitos.

DT_DBTIMESTAMP

Uma estrutura de carimbo de data/hora que consiste em ano, mês, dia, hora, minuto, segundo e segundos fracionários. Os segundos fracionários têm uma escala fixa de 3 dígitos.

DT_DBTIMESTAMP2

Uma estrutura de carimbo de data/hora que consiste em ano, mês, dia, hora, minuto, segundo e segundos fracionários. Os segundos fracionários têm uma escala máxima de 7 dígitos.

DT_DBTIMESTAMPOFFSET

Uma estrutura de carimbo de hora que consiste em ano, mês, dia, hora, minuto, segundo e segundos fracionários. Os segundos fracionários têm uma escala máxima de 7 dígitos.

Diferente dos tipos de dados DT_DBTIMESTAMP e DT_DBTIMESTAMP2, o tipo de dados DT_DBTIMESTAMPOFFSET tem um deslocamento de fuso horário. Esse deslocamento especifica o número de horas e minutos que o horário é deslocado do tempo universal coordenado (UTC). O deslocamento de fuso horário é usado pelo sistema para obter a hora local.

O deslocamento de fuso horário deve incluir um sinal de soma ou subtração para indicar se esse deslocamento é somado ou subtraído do UTC. O número válido de deslocamento de horas está entre -14 e +14. O sinal para o deslocamento de minutos depende do sinal para o deslocamento de hora:

  • Se o sinal do deslocamento de hora for negativo, o deslocamento de minuto deverá ser negativo ou zero.

  • Se o sinal para o deslocamento de hora for positivo, o deslocamento de minuto deverá ser positivo ou zero.

  • Se o sinal para o deslocamento de hora for zero, o deslocamento de minuto poderá ser qualquer valor do negativo 0.59 ao positivo 0.59.

DT_DECIMAL

Um valor numérico exato com uma precisão fixa e uma escala fixa. Esse tipo de dados é um inteiro não assinado de 12 bytes com um sinal separado, uma escala de 0 a 28 e uma precisão máxima de 29.

DT_FILETIME

Um valor de 64 bits que representa o número de intervalos de 100 nanossegundos desde 1 de janeiro de 1601. Os segundos fracionários têm uma escala máxima de 3 dígitos.

DT_GUID

Um identificador global exclusivo (GUID).

DT_I1

Um inteiro assinado de um byte.

DT_I2

Um inteiro assinado de dois bytes.

DT_I4

Um inteiro assinado de quatro bytes.

DT_I8

Um inteiro assinado de oito bytes.

DT_NUMERIC

Um valor numérico exato com precisão e escala fixas. Esse tipo de dados é um inteiro não assinado de 16 bytes com um sinal separado, uma escala de 0 a -38 e uma precisão máxima de 38.

DT_R4

Um valor de ponto flutuante de precisão única.

DT_R8

Um valor de ponto flutuante de precisão dupla.

DT_STR

Uma cadeia de caracteres ANSI/MBCS com terminação nula com um comprimento máximo de 8000 caracteres. (Se um valor de coluna contiver terminadores nulos adicionais, a cadeia será truncada na ocorrência do primeiro nulo.)

DT_UI1

Um inteiro não assinado de um byte.

DT_UI2

Um inteiro não assinado de dois bytes.

DT_UI4

Um inteiro não assinado de quatro bytes.

DT_UI8

Um inteiro não assinado de oito bytes.

DT_WSTR

Uma cadeia de caracteres Unicode com terminação nula com um comprimento máximo de 4000 caracteres. (Se um valor de coluna contiver terminadores nulos adicionais, a cadeia será truncada na ocorrência do primeiro nulo.)

DT_IMAGE

Um valor binário com um tamanho de máximo de 231-1 (2,147,483,647) bytes. .

DT_NTEXT

Uma cadeia de caracteres Unicode com um comprimento máximo de 230 - 1 (1,073,741,823) caracteres.

DT_TEXT

Uma cadeia de caracteres ANSI/MBCS com um comprimento máximo de 231-1 (2,147,483,647) caracteres.

Convertendo tipos de dados

Se os dados em uma coluna não exigirem a largura total alocada pelo tipo de dados de origem, talvez você queira alterar o tipo de dados da coluna. Tornar cada linha de dados mais estreita possível ajuda você a otimizar o desempenho ao transferir dados porque quanto mais estreita a linha, mais rápido os dados são transferidos da origem para o destino.

O Integration Services inclui um conjunto completo de tipos de dados numéricos para que você possa corresponder o tipo de dados que mais de aproxima do tamanho dos dados. Por exemplo, se os valores em uma coluna com um tipo de dados DT_UI8 forem sempre inteiros entre 0 e 3000, você poderá alterar o tipo de dados para DT_UI2. De modo semelhante, se uma coluna com o tipo de dados DT_CY puder corresponder aos requisitos de dados de pacote usando um tipo de dados inteiro, você poderá alterar o tipo de dados para DT_I4.

Você pode alterar o tipo de dados de uma coluna das seguintes formas:

Conversão entre cadeias de caracteres e tipos de dados de data/hora

A tabela a seguir lista os resultados da conversão entre tipos de dados de data/hora e cadeias de caracteres:

  • Ao usar o operador cast ou a transformação Conversão de Dados, o tipo de dados de data ou hora é convertido no formato de cadeia de caracteres correspondente. Por exemplo, o tipo de dados DT_DBTIME será convertido em uma cadeia de caracteres que tem o formato “hh:mm:ss”.

  • Quando desejar converter de uma cadeia de caracteres em um tipo de dados de data ou hora, a cadeia de caracteres deve usar o formato que corresponde ao tipo de dados de data ou hora apropriado. Por exemplo, para converter algumas cadeias de caracteres de data com êxito no tipo de dados DT_DBDATE, essas cadeias de caracteres devem estar no formato “aaaa-mm-dd”.

    Tipo de dados

    Formato da cadeia de caracteres

    DT_DBDATE

    aaaa-mm-dd

    DT_FILETIME

    aaaa-mm-dd hh:mm:ss:fff

    DT_DBTIME

    hh:mm:ss

    DT_DBTIME2

    hh:mm:ss[.fffffff]

    DT_DBTIMESTAMP

    aaaa-mm-dd hh:mm:ss[.fff]

    DT_DBTIMESTAMP2

    aaaa-mm-dd hh:mm:ss[.fffffff]

    DT_DBTIMESTAMPOFFSET

    aaaa-mm-dd hh:mm:ss[.fffffff] [{+|-} hh:mm]

No formato de DT_FILETIME e DT_DBTIMESTAMP, fff é um valor entre 0 e 999 que representa segundos fracionários.

No formato de data de DBTIMESTAMP2, DT_DBTIME2 e DT_DBTIMESTAMPOFFSET, fffffff é um valor entre 0 e 9999999 que representa segundos fracionários.

O formato de data de DT_DBTIMESTAMPOFFSET também inclui um elemento de fuso horário. Há um espaço entre o elemento de hora e o elemento de fuso horário.

Convertendo tipos de dados de data e hora

Você pode alterar o tipo de dados em uma coluna com dados de data e hora para extrair a parte de data ou hora dos dados. As tabelas seguintes listam os resultados da alteração de um tipo de dados de data e hora para outro tipo de dados de data e hora.

Convertendo a partir de DT_FILETIME

Converter DT_FILETIME para

Resultado

DT_FILETIME

Nenhuma alteração.

DT_DATE

Converte o tipo de dados.

DT_DBDATE

Remove o valor de hora.

DT_DBTIME

Remove o valor de data.

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos fracionários que o tipo de dados DT_DBTIME pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DBTIME2

Remove o valor de data representado pelo tipo de dados DT_FILETIME.

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DBTIME2 pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DBTIMESTAMP

Converte o tipo de dados.

DT_DBTIMESTAMP2

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DBTIMESTAMP2 pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DBTIMESTAMPOFFSET

Define o campo de fuso horário no tipo de dados DT_DBTIMESTAMPOFFSET como zero.

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DBTIMESTAMPOFFSET pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

Convertendo a partir de DT_DATE

Converter DT_DATE para

Resultado

DT_FILETIME

Converte o tipo de dados.

DT_DATE

Nenhuma alteração.

DT_DBDATE

Remove o valor de hora representado pelo tipo de dados DT_DATA.

DT_DBTIME

Remove o valor de data representado pelo tipo de dados DT_DATE.

DT_DBTIME2

Remove o valor de data representado pelo tipo de dados DT_DATE.

DT_DBTIMESTAMP

Converte o tipo de dados.

DT_DBTIMESTAMP2

Converte o tipo de dados.

DT_DBTIMESTAMPOFFSET

Define o campo de fuso horário no tipo de dados DT_DBTIMESTAMPOFFSET como zero.

Convertendo a partir de DT_DBDATE

Converter DT_DBDATE para

Resultado

DT_FILETIME

Define os campos de hora no tipo de dados DT_FILETIME como zero.

DT_DATE

Define os campos de hora no tipo de dados DT_DATE como zero.

DT_DBDATE

Nenhuma alteração.

DT_DBTIME

Define os campos de hora no tipo de dados DT_DBTIME como zero.

DT_DBTIME2

Define os campos de hora no tipo de dados DT_DBTIME2 como zero.

DT_DBTIMESTAMP

Define os campos de hora no tipo de dados DT_DBTIMESTAMP como zero.

DT_DBTIMESTAMP2

Define os campos de hora no tipo de dados DT_DBTIMESTAMP como zero.

DT_DBTIMESTAMPOFFSET

Define os campos de hora e fuso horário no tipo de dados DT_DBTIMESTAMPOFFSET como zero.

Convertendo a partir de DT_DBTIME

Converter DT_DBTIME para

Resultado

DT_FILETIME

Define o campo de data no tipo de dados DT_FILETIME como a data atual.

DT_DATE

Define o campo de data no tipo de dados DT_DATE como a data atual.

DT_DBDATE

Define o campo de data no tipo de dados DT_DBDATE como a data atual.

DT_DBTIME

Nenhuma alteração.

DT_DBTIME2

Converte o tipo de dados.

DT_DBTIMESTAMP

Define o campo de data no tipo de dados DT_DBTIMESTAMP como a data atual.

DT_DBTIMESTAMP2

Define o campo de data no tipo de dados DT_DBTIMESTAMP2 como a data atual.

DT_DBTIMESTAMPOFFSET

Define os campos de data e fuso horário no tipo de dados DT_DBTIMESTAMPOFFSET como a data atual e como zero, respectivamente.

Convertendo a partir de DT_DBTIME2

Converter DT_DBTIME2 para

Resultado

DT_FILETIME

Define o campo de data no tipo de dados DT_FILETIME como a data atual.

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_FILETIME pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DATE

Define o campo de data do tipo de dados DT_DATE como a data atual.

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DATE pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DBDATE

Define o campo de data do tipo de dados DT_DBDATE como a data atual.

DT_DBTIME

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DBTIME pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DBTIME2

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DBTIME2 de destino pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DBTIMESTAMP

Define o campo de data no tipo de dados DT_DBTIMESTAMP como a data atual.

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DBTIMESTAMP pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DBTIMESTAMP2

Define o campo de data no tipo de dados DT_DBTIMESTAMP2 como a data atual.

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DBTIMESTAMP2 pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DBTIMESTAMPOFFSET

Define os campos de data e fuso horário no tipo de dados DT_DBTIMESTAMPOFFSET como a data atual e como zero, respectivamente.

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DBTIMESTAMPOFFSET pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

Convertendo a partir de DT_DBTIMESTAMP

Converter DT_DBTIMESTAMP para

Resultado

DT_FILETIME

Converte o tipo de dados.

DT_DATE

Se um valor representado pelo tipo de dados DT_DBTIMESTAMP ultrapassar o intervalo do tipo de dados DT_DATE, o erro DB_E_DATAOVERFLOW será retornado. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DBDATE

Remove o valor de hora representado pelo tipo de dados DT_DBTIMESTAMP.

DT_DBTIME

Remove o valor de data representado pelo tipo de dados DT_DBTIMESTAMP.

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DBTIME pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DBTIME2

Remove o valor de data representado pelo tipo de dados DT_DBTIMESTAMP.

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DBTIME2 pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DBTIMESTAMP

Nenhuma alteração.

DT_DBTIMESTAMP2

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DBTIMESTAMP2 pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DBTIMESTAMPOFFSET

Define o campo de fuso horário no tipo de dados DT_DBTIMESTAMPOFFSET como zero.

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DBTIMESTAMPOFFSET pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

Convertendo a partir de DT_DBTIMESTAMP2

Converter DT_DBTIMESTAMP2 para

Resultado

DT_FILETIME

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_FILETIME pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DATE

Se um valor representado pelo tipo de dados DT_DBTIMESTAMP2 ultrapassar o intervalo do tipo de dados DT_DATE, o erro DB_E_DATAOVERFLOW será retornado. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DATE pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DBDATE

Remove o valor de hora representado pelo tipo de dados DT_DBTIMESTAMP2.

DT_DBTIME

Remove o valor de data representado pelo tipo de dados DT_DBTIMESTAMP2.

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DBTIME pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DBTIME2

Remove o valor de data representado pelo tipo de dados DT_DBTIMESTAMP2.

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DBTIME2 pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DBTIMESTAMP

Se um valor representado pelo tipo de dados DT_DBTIMESTAMP2 ultrapassar o intervalo do tipo de dados DT_DBTIMESTAMP, o erro DB_E_DATAOVERFLOW será retornado.

DT_DBTIMESTAMP2 é mapeado para um tipo de dados do SQL Server, datetime2, com um intervalo de 1 de janeiro, 1 d.C a 31 de dezembro de 9999. DT_DBTIMESTAMP é mapeado para um tipo de dados do SQL Server, datetime, com um intervalo menor de 1 de janeiro, 1753 a 31 de dezembro de 9999.

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DBTIMESTAMP pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados.

Para obter mais informações sobre erros, consulte Manipulando erros no fluxo de dados.

DT_DBTIMESTAMP2

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DBTIMESTAMP2 de destino pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DBTIMESTAMPOFFSET

Define o campo de fuso horário no tipo de dados DT_DBTIMESTAMPOFFSET como zero.

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DBTIMESTAMPOFFSET pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

Convertendo a partir de DT_DBTIMESTAMPOFFSET

Converter DT_DBTIMESTAMPOFFSET para

Resultado

DT_FILETIME

Altera o valor de hora representado pelo tipo de dados DT_DBTIMESTAMPOFFSET para o tempo universal coordenado (UTC).

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_FILETIME pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DATE

Altera o valor de hora representado pelo tipo de dados DT_DBTIMESTAMPOFFSET para UTC.

Se um valor representado pelo tipo de dados DT_DBTIMESTAMPOFFSET ultrapassar o intervalo do tipo de dados DT_DATE, o erro DB_E_DATAOVERFLOW será retornado.

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DATE pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados.

Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DBDATE

Altera o valor de hora representado pelo tipo de dados DT_DBTIMESTAMPOFFSET para UTC, que pode afetar o valor da data. O valor de hora é então removido.

DT_DBTIME

Altera o valor de hora representado pelo tipo de dados DT_DBTIMESTAMPOFFSET para UTC.

Remove o valor de dados representado pelo tipo de dados DT_DBTIMESTAMPEOFFSET.

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DBTIME pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DBTIME2

Altera o valor de hora representado pelo tipo de dados DT_DBTIMESTAMPOFFSET para UTC.

Remove o valor de data representado pelo tipo de dados DT_DBTIMESTAMPOFFSET.

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DBTIME2 pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DBTIMESTAMP

Altera o valor de hora representado pelo tipo de dados DT_DBTIMESTAMPOFFSET para UTC.

Se um valor representado pelo tipo de dados DT_DBTIMESTAMPOFFSET ultrapassar o intervalo do tipo de dados DT_DBTIMESTAMP, o erro DB_E_DATAOVERFLOW será retornado.

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DBTIMESTAMP pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados.

Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DBTIMESTAMP2

Altera o valor de hora representado pelo tipo de dados DT_DBTIMESTAMPOFFSET para UTC.

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DBTIMESTAMP2 pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

DT_DBTIMESTAMPOFFSET

Remove o valor de segundo fracionário quando sua escala é maior que o número de dígitos de segundos fracionários que o tipo de dados DT_DBTIMESTAMPOFFSET de destino pode conter. Após a remoção do valor de segundo fracionário, gera um relatório sobre esse truncamento de dados. Para obter mais informações, consulte Manipulando erros no fluxo de dados.

Mapeando tipos de dados do Integration Services para tipos de bancos de dados

A tabela a seguir fornece orientações sobre como mapear os tipos de dados usados por determinados bancos de dados para tipos de dados do Integration Services. Esses mapeamentos são resumidos dos arquivos de mapeamento usados pelo Assistente de Importação e Exportação do SQL Server ao importar dados dessas fontes. Para obter mais informações sobre esses arquivos de mapeamento, consulte Usando o Assistente de Importação e Exportação do SQL Server para mover dados.

Observação importanteImportante

Tais mapeamentos não pretendem representar uma equivalência exata, mas apenas orientar. Em determinadas situações, você pode precisar usar um tipo de dados diferente do tipo mostrado nesta tabela.

Tipo de dados

SQL Server

(SQLOLEDB; SQLNCLI10)

SQL Server (SqlClient)

Jet

Oracle

(OracleClient)

DB2

(DB2OLEDB)

DB2

(IBMDADB2)

DT_BOOL

bit

bit

Bit

DT_BYTES

binary, varbinary, timestamp

binary, varbinary, timestamp

BigBinary, VarBinary

RAW

DT_CY

smallmoney, money

smallmoney, money

Currency

DT_DATE

DT_DBDATE

date

date

date

date

date

DT_DBTIME

timestamp

time

time

DT_DBTIME2

time (p)

time (p)

DT_DBTIMESTAMP

datetime, smalldatetime

datetime, smalldatetime

DateTime

TIMESTAMP, DATE, INTERVAL

TIME, TIMESTAMP, DATE

TIME, TIMESTAMP, DATE

DT_DBTIMESTAMP2

datetime2

datetime2

timestamp

timestamp

timestamp

DT_DBTIMESTAMPOFFSET

datetimeoffset(p)

datetimeoffset(p)

timestampoffset

timestamp,

varchar

timestamp,

varchar

DT_DECIMAL

DT_FILETIME

DT_GUID

uniqueidentifier

uniqueidentifier

GUID

DT_I1

DT_I2

smallint

smallint

Short

SMALLINT

SMALLINT

DT_I4

int

int

Long

INTEGER

INTEGER

DT_I8

bigint

bigint

BIGINT

BIGINT

DT_NUMERIC

decimal, numeric

decimal, numeric

Decimal

NUMBER, INT

DECIMAL, NUMERIC

DECIMAL, NUMERIC

DT_R4

real

real

Single

REAL

REAL

DT_R8

float

float

Double

FLOAT, REAL

FLOAT, DOUBLE

FLOAT, DOUBLE

DT_STR

char, varchar

VarChar

CHAR, VARCHAR

CHAR, VARCHAR

DT_UI1

tinyint

tinyint

Byte

DT_UI2

DT_UI4

DT_UI8

DT_WSTR

nchar, nvarchar, sql_variant, xml

char, varchar, nchar, nvarchar, sql_variant, xml

LongText

CHAR, ROWID, VARCHAR2, NVARCHAR2, NCHAR

GRAPHIC, VARGRAPHIC

GRAPHIC, VARGRAPHIC

DT_IMAGE

image

image

LongBinary

LONG RAW, BLOB, LOBLOCATOR, BFILE, VARGRAPHIC, LONG VARGRAPHIC, definido pelo usuário

CHAR () FOR BIT DATA, VARCHAR () FOR BIT DATA

CHAR () FOR BIT DATA, VARCHAR () FOR BIT DATA, BLOB

DT_NTEXT

ntext

text, ntext

LONG, CLOB, NCLOB, NVARCHAR, TEXT

LONG VARCHAR, NCHAR, NVARCHAR, TEXT

LONG VARCHAR, DBCLOB, NCHAR, NVARCHAR, TEXT

DT_TEXT

text

LONG VARCHAR FOR BIT DATA

LONG VARCHAR FOR BIT DATA, CLOB

Para obter informações sobre como mapear tipos de dados no fluxo de dados, consulte Trabalhando com tipos de dados no fluxo de dados.

Recursos externos

Entrada de blog, Performance Comparison between Data Type Conversion Techniques in SSIS 2008, em blogs.msdn.com.

Ícone do Integration Services (pequeno) Fique atualizado com o Integration Services

Para obter os downloads, artigos, exemplos e vídeos mais recentes da Microsoft, bem como soluções selecionadas da comunidade, visite a página do Integration Services no MSDN ou TechNet:

Para receber uma notificação automática sobre essas atualizações, assine os feeds RSS disponíveis na página.

Consulte também

Conceitos