Partilhar via


Cast (expressão SSIS)

se aplica a:SQL Server SSIS Integration Runtime no Azure Data Factory

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

Sintaxe

  
(type_spec) expression  
  

Argumentos

type_spec
É um tipo de dados SSIS válido.

expressão
É uma expressão válida.

Tipos de resultados

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 as operações de conversão legal.

Transmissõ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 Contagem de caracteres

página de código
(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 pares de 20 bytes, ou 20 caracteres Unicode, para o tipo de dados DT_WSTR.
DT_BYTES Contagem de Bytes (DT_BYTES,50) converte 50 bytes para o tipo de dados DT_BYTES.
DT_DECIMAL Escala (DT_DECIMAL,2) converte um valor numérico para o tipo de dados DT_DECIMAL usando uma escala de 2.
DT_NUMERIC de precisão

Escala
(DT_NUMERIC,10,3) projeta um valor numérico para o tipo de dados DT_NUMERIC usando uma precisão de 10 e uma escala de 3.
DT_TEXT Página de código (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 em um DT_DATE, ou vice-versa, a localidade da transformação é usada. No entanto, a data está no formato ISO de AAAA-MM-DD, independentemente de a preferência de localidade usar o formato ISO.

Observação

Para converter uma cadeia de caracteres num tipo de dados de data diferente de DT_DATE, consulte Tipos de Dados dos Serviços de Integração.

Se a página de código for uma página de código de caracteres multibyte, o número de bytes e caracteres pode diferir. A conversão de um DT_WSTR para um DT_STR com o mesmo valor de contagem de caracteres pode causar truncamento dos caracteres finais na string convertida. Se houver armazenamento suficiente 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 multibyte exige. Por exemplo, se você converter dados de caracteres 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 do que o número de caracteres que você espera que os dados contenham; se você transmitir 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 relacionados à data, consulte Integration Services Data Types.

Exemplos de expressões SSIS

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

(DT_I4) 3.57  

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

(DT_STR,1,1252)5  

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

(DT_WSTR,3)"Cat"  

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

(DT_DECIMAl,2)500  

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

(DT_NUMERIC,7,3)4000  

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

(DT_STR,50,1252)FirstName  

Este exemplo converte valores na coluna DateFirstPurchase do tipo DT_DBDATE para uma cadeia de caracteres Unicode com um comprimento de 20.

(DT_WSTR,20)DateFirstPurchase  

Este exemplo converte a cadeia de caracteres literal "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 uma cadeia de caracteres literal para o tipo de dados DT_DBTIME2 que usa 5 dígitos por 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 uma cadeia de caracteres literal para o tipo de dados DT_DBTIMESTAMP2, que usa 4 dígitos para os 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 uma cadeia de caracteres literal para o tipo de dados DT_DBTIMESTAMPOFFSET que usa 7 dígitos por 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"  

Ver também

Precedência e Associatividade do Operador
Operadores (Expressão SSIS)
Expressões de SSIS (Integration Services)
Tipos de Dados do Serviços de Integração em Expressões