Cast (SSIS)

Converte explicitamente uma expressão de um tipo de dados para um tipo de dados diferente. O operador cast também pode funcionar como um operador de truncamento.

Sintaxe


(type_spec) expression
        

Argumentos

  • type_spec
    É um tipo de dados SSIS válido.

  • expression
    É uma expressão válida.

Tipos de resultado

O tipo de dados de type_spec. Para obter mais informações, consulte Tipos de dados do Integration Services.

Comentários

O diagrama a seguir mostra operações de conversão legais.

Conversões legais e não legais entre tipos de dados

A conversão para alguns tipos de dados requer parâmetros. A tabela a seguir lista esses tipos de dados e seus parâmetros.

Tipo de dados

Parâmetro

Exemplo

DT_STR

charcount

codepage

(DT_STR,30,1252) converte 30 bytes ou 30 caracteres únicos, para o tipo de dados DT_STR usando a página de código 1252.

DT_WSTR

Charcount

(DT_WSTR,20) converte 20 pares de bytes, ou 20 caracteres Unicode, para o tipo de dados DT_WSTR.

DT_BYTES

Bytecount

(DT_BYTES,50) converte 50 bytes para o tipo de dados DT_BYTES.

DT_DECIMAL

Scale

(DT_DECIMAL,2) converte um valor numérico para o tipo de dados DT_DECIMAL usando uma escala de 2.

DT_NUMERIC

Precision

Scale

(DT_NUMERIC,10,3) converte um valor numérico para o tipo de dados DT_NUMERIC usando uma precisão de 10 e uma escala de 3.

DT_TEXT

Codepage

(DT_TEXT,1252) converte um valor para o tipo de dados DT_TEXT usando a página de código 1252.

Quando uma cadeia de caracteres é convertida para um DT_DATE, ou vice-versa, a localidade da transformação é usada. Entretanto, a data está no formato ISO de AAAA-MM-DD, independentemente da preferência de localidade usada no formato ISO.

ObservaçãoObservação

Para converter uma cadeia de caracteres para um tipo de dados de data diferente de DT_DATE, consulte Tipos de dados do Integration Services.

Se a página de código for uma página de código de caractere de multibyte, o número de bytes e caracteres poderá diferir. A conversão de DT_WSTR para DT_STR com o mesmo valor de charcount pode causar truncamento dos caracteres finais na cadeia de caracteres convertidos. Se armazenamento suficiente estiver disponível na coluna da tabela de destino, defina o valor do parâmetro charcount para refletir o número de bytes que a página de código de multibyte exige. Por exemplo, se você converter dados de caractere para um tipo de dados DT_STR usando a página de código 936, deverá definir charcount para um valor até duas vezes maior que o número de caracteres que você espera que os dados contenham; se você converter os dados de caracteres usando a página de código UTF-8, deverá definir charcount para um valor até quatro vezes maior.

Para obter mais informações sobre a estrutura dos tipos de dados de data, consulte Tipos de dados do Integration Services.

Exemplos

Este exemplo converte um valor numérico para um inteiro.

(DT_I4) 3.57

Este exemplo converte um inteiro para uma cadeia de caracteres usando a página de código 1252.

(DT_STR,1,1252)5

Este exemplo converte uma cadeia de três caracteres para caracteres de byte duplo.

(DT_WSTR,3)"Cat"

Este exemplo converte um inteiro para um decimal com uma escala de dois.

(DT_DECIMAl,2)500

Este exemplo converte um inteiro para um numérico com uma precisão de sete e escala de três.

(DT_NUMERIC,7,3)4000

Este exemplo converte valores na coluna FirstName, definidos com um tipo de dados nvarchar e um comprimento de 50, para uma cadeia de caracteres usando a página de código 1252.

(DT_STR,50,1252)FirstName

Este exemplo converte o literal da cadeia de caracteres "True" para um Booleano.

(DT_BOOL)"True"

Este exemplo converte um literal de cadeia de caracteres para DT_DBDATE.

(DT_DBDATE) "1999-10-11"

Este exemplo converte um literal de cadeia de caracteres para o tipo de dados DT_DBTIME2 que usa 5 dígitos para segundos fracionários. (O tipo de dados DT_DBTIME2 pode ter entre 0 e 7 dígitos especificados para segundos fracionários.)

(DT_DBTIME2, 5) "16:34:52.12345"

Este exemplo converte um literal de cadeia de caracteres para o tipo de dados DT_DBTIMESTAMP2 que usa 4 dígitos para segundos fracionários. (O tipo de dados DT_DBTIMESTAMP2 pode ter entre 0 e 7 dígitos especificados para segundos fracionários.)

(DT_DBTIMESTAMP2, 4) "1999-10-11 16:34:52.1234"

Este exemplo converte um literal de cadeia de caracteres para o tipo de dados DT_DBTIMESTAMPOFFSET que usa 7 dígitos para segundos fracionários. (O tipo de dados DT_DBTIMESTAMPOFFSET pode ter entre 0 e 7 dígitos especificados para segundos fracionários.)

(DT_DBTIMESTAMPOFFSET, 7) "1999-10-11 16:34:52.1234567 + 5:35"