Cast (espressione SSIS)Cast (SSIS Expression)

Viene convertita esplicitamente un'espressione da un tipo di dati a un altro.Explicitly converts an expression from one data type to a different data type. L'operatore cast può essere utilizzato anche come operatore di troncamento.The cast operator can also function as a truncation operator.

SintassiSyntax


(type_spec) expression  

ArgomentiArguments

type_spectype_spec
Tipo di dati SSISSSIS valido.Is a valid SSISSSIS data type.

espressioneexpression
Espressione valida.Is a valid expression.

Tipi restituitiResult Types

Tipo di dati type_spec.The data type of type_spec. Per altre informazioni, vedere Tipi di dati di Integration Services.For more information, see Integration Services Data Types.

OsservazioniRemarks

Nella figura seguente vengono illustrate alcune operazioni di cast valide.The following diagram shows legal cast operations.

I cast tra tipi di dati validi e non validiLegal and not legal casts between data types

Per eseguire il cast a determinati tipi di dati è necessario specificare i parametri appropriati.Casting to some data types requires parameters. Nella tabella seguente vengono elencati tali tipi di dati e i parametri corrispondenti.The following table lists these data types and their parameters.

Tipo di datiData type ParametroParameter EsempioExample
DT_STRDT_STR charcountcharcount

codepagecodepage
(DT_STR,30,1252): esegue il cast di 30 byte, ovvero 30 caratteri singoli, al tipo di dati DT_STR utilizzando la tabella codici 1252.(DT_STR,30,1252) casts 30 bytes, or 30 single characters, to the DT_STR data type using the 1252 code page.
DT_WSTRDT_WSTR CharcountCharcount (DT_WSTR,20): esegue il cast di 20 coppie di byte, ovvero 20 caratteri Unicode, al tipo di dati DT_WSTR.(DT_WSTR,20) casts 20 byte pairs, or 20 Unicode characters, to the DT_WSTR data type.
DT_BYTESDT_BYTES BytecountBytecount (DT_BYTES,50): esegue il cast di 50 byte al tipo di dati DT_BYTES.(DT_BYTES,50) casts 50 bytes to the DT_BYTES data type.
DT_DECIMALDT_DECIMAL ScalaScale (DT_DECIMAL,2): esegue il cast di un valore numerico al tipo di dati DT_DECIMAL, utilizzando una scala pari a 2.(DT_DECIMAL,2) casts a numeric value to the DT_DECIMAL data type using a scale of 2.
DT_NUMERICDT_NUMERIC PrecisionePrecision

ScalaScale
(DT_NUMERIC,10,3): esegue il cast di un valore numerico al tipo di dati DT_NUMERIC, utilizzando una precisione pari a 10 e una scala pari a 3.(DT_NUMERIC,10,3) casts a numeric value to the DT_NUMERIC data type using a precision of 10 and a scale of 3.
DT_TEXTDT_TEXT CodepageCodepage (DT_TEXT,1252): esegue il cast di un valore al tipo di dati DT_TEXT utilizzando la tabella codici 1252.(DT_TEXT,1252) casts a value to the DT_TEXT data type using the 1252 code page.

Quando si esegue il cast di una stringa a un tipo di dati DT_DATE, o viceversa, vengono utilizzate le impostazioni locali della trasformazione.When a string is cast to a DT_DATE, or vice versa, the locale of the transformation is used. Tuttavia, la data è nel formato ISO AAAA-MM-GG, indipendentemente dal fatto che le impostazioni locali utilizzino il formato ISO.However, the date is in the ISO format of YYYY-MM-DD, regardless of whether the locale preference uses the ISO format.

Nota

Per convertire una stringa in un tipo di dati date diverso da DT_DATE, vedere Tipi di dati di Integration Services.To convert a string to a date data type other than DT_DATE, see Integration Services Data Types.

Se la tabella codici è di tipo MBCS (Multibyte Character Set), il numero dei byte potrebbe non corrispondere a quello dei caratteri.If the code page is a multibyte character code page, the number of bytes and characters may differ. Il cast da DT_WSTR a DT_STR con lo stesso valore di charcount potrebbe provocare il troncamento dei caratteri finali nella stringa convertita.Casting from a DT_WSTR to a DT_STR with the same charcount value may cause truncation of the final characters in the converted string. Se nella colonna della tabella di destinazione è disponibile spazio di archiviazione sufficiente, impostare il valore del parametro charcount in modo da riflettere il numero di byte richiesto dalla tabella codici MBCS.If sufficient storage is available in the column of the destination table, set the value of the charcount parameter to reflect the number of bytes that the multibyte code page requires. Se ad esempio si esegue il cast di dati di tipo carattere a un tipo di dati DT_STR usando la tabella codici 936, sarà necessario impostare charcount su un valore fino a due volte più grande del numero di caratteri che si prevede sarà contenuto nei dati. Se si esegue il cast di dati di tipo carattere utilizzando la tabella codici UTF-8, sarà necessario impostare charcount su un valore fino a quattro volte più grande.For example, if you cast character data to a DT_STR data type using the 936 code page, you should set charcount to a value up to two times greater than the number of characters that you expect the data to contain; if you cast character data using the UTF-8 code page, you should set charcount to a value up to four times greater.

Per altre informazioni sulla struttura dei tipi di dati di data, vedere Tipi di dati di Integration Services.For more information about the structure of date data types, see Integration Services Data Types.

Esempi di espressione SSISSSIS Expression Examples

In questo esempio viene eseguito il cast di un valore numerico a un valore integer.This example casts a numeric value to an integer.

(DT_I4) 3.57  

In questo esempio viene eseguito il cast di un valore integer a una stringa di caratteri utilizzando la tabella codici 1252.This example casts an integer to a character string using the 1252 code page.

(DT_STR,1,1252)5  

In questo esempio viene eseguito il cast di una stringa di tre caratteri a caratteri DBCS (Double-Byte Character Set).This example casts a three-character string to double-byte characters.

(DT_WSTR,3)"Cat"  

In questo esempio viene eseguito il cast di un valore integer a un valore decimale con scala pari a 2.This example casts an integer to a decimal with a scale of two.

(DT_DECIMAl,2)500  

In questo esempio viene eseguito il cast di un valore integer a un valore numerico con precisione pari a 7 e scala pari a 3.This example casts an integer to a numeric with a precision of seven and scale of three.

(DT_NUMERIC,7,3)4000  

In questo esempio viene eseguito il cast dei valori nella colonna FirstName , definita con un tipo di dati nvarchar e lunghezza 50, a una stringa di caratteri tramite la tabella codici 1252.This example casts values in the FirstName column, defined with an nvarchar data type and a length of 50, to a character string using the 1252 code page.

(DT_STR,50,1252)FirstName  

In questo esempio viene eseguito il cast dei valori nella colonna DateFirstPurchase di tipo DT_DBDATE a una stringa di caratteri Unicode con lunghezza 20.This example casts values in the DateFirstPurchase column of type DT_DBDATE, to a Unicode character string with a length of 20.

(DT_WSTR,20)DateFirstPurchase  

In questo esempio viene eseguito il cast del valore letterale stringa "True" a un valore booleano.This example casts the string literal "True" to a Boolean.

(DT_BOOL)"True"  

In questo esempio viene eseguito il cast di un valore letterale stringa a DT_DBDATE.This example casts a string literal to DT_DBDATE.

(DT_DBDATE) "1999-10-11"  

In questo esempio viene eseguito il cast di un valore letterale stringa al tipo di dati DT_DBTIME2 che utilizza 5 cifre per i secondi frazionari.This example casts a string literal to the DT_DBTIME2 data type that uses 5 digits for fractional seconds. Nel tipo di dati DT_DBTIME2 possono essere specificate da 0 a 7 cifre per i secondi frazionari.(The DT_DBTIME2 data type can have between 0 and 7 digits specified for fractional seconds.)

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

In questo esempio viene eseguito il cast di un valore letterale stringa al tipo di dati DT_DBTIMESTAMP2 che utilizza 4 cifre per i secondi frazionari.This example casts a string literal to the DT_DBTIMESTAMP2 data type that uses 4 digits for fractional seconds. Nel tipo di dati DT_DBTIMESTAMP2 possono essere specificate da 0 a 7 cifre per i secondi frazionari.(The DT_DBTIMESTAMP2 data type can have between 0 and 7 digits specified for fractional seconds.)

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

In questo esempio viene eseguito il cast di un valore letterale stringa al tipo di dati DT_DBTIMESTAMPOFFSET che utilizza 7 cifre per i secondi frazionari.This example casts a string literal to the DT_DBTIMESTAMPOFFSET data type that uses 7 digits for fractional seconds. Nel tipo di dati DT_DBTIMESTAMPOFFSET possono essere specificate da 0 a 7 cifre per i secondi frazionari.(The DT_DBTIMESTAMPOFFSET data typecan have between 0 and 7 digits specified for fractional seconds.)

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

Vedere ancheSee Also

Associatività e precedenza operatori Operator Precedence and Associativity
Operatori ( Espressione SSIS ) Operators (SSIS Expression)
Integration Services ( SSIS ) Espressioni Integration Services (SSIS) Expressions
Tipi di dati nelle espressioni di Integration ServicesIntegration Services Data Types in Expressions