Cast (espressione SSIS): Convertire tipi di dati SSIS
Consente di convertire esplicitamente un'espressione da un tipo di dati a un altro. L'operatore cast può essere utilizzato anche come operatore di troncamento.
Sintassi
(type_spec) expression
Argomenti
type_spec
Tipo di dati SSIS valido.expression
Espressione valida.
Tipi restituiti
Tipo di dati di type_spec. Per ulteriori informazioni, vedere Tipi di dati di Integration Services.
Osservazioni
Nella figura seguente vengono illustrate alcune operazioni di cast valide.
Per eseguire il cast a determinati tipi di dati è necessario specificare i parametri appropriati. Nella tabella seguente vengono elencati tali tipi di dati e i parametri corrispondenti.
Tipo di dati |
Parametro |
Esempio |
---|---|---|
DT_STR |
charcount codepage |
(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_WSTR |
Charcount |
(DT_WSTR,20): esegue il cast di 20 coppie di byte, ovvero 20 caratteri Unicode, al tipo di dati DT_WSTR. |
DT_BYTES |
Bytecount |
(DT_BYTES,50): esegue il cast di 50 byte al tipo di dati DT_BYTES. |
DT_DECIMAL |
Scale |
(DT_DECIMAL,2): esegue il cast di un valore numerico al tipo di dati DT_DECIMAL, utilizzando una scala pari a 2. |
DT_NUMERIC |
Precision Scale |
(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_TEXT |
Codepage |
(DT_TEXT,1252): esegue il cast di un valore al tipo di dati DT_TEXT utilizzando la tabella codici 1252. |
Quando si esegue il cast di una stringa a un tipo di dati DT_DATE, o viceversa, vengono utilizzate le impostazioni locali della trasformazione. Tuttavia, la data è nel formato ISO AAAA-MM-GG, indipendentemente dal fatto che le impostazioni locali utilizzino il formato ISO.
Nota
Per convertire una stringa in un tipo di dati relativo alla data diverso da DT_DATE, vedere Tipi di dati di Integration Services.
Se la tabella codici è di tipo MBCS (Multibyte Character Set), il numero dei byte potrebbe non corrispondere a quello dei caratteri. Il cast da DT_WSTR a DT_STR con lo stesso valore di charcount potrebbe provocare il troncamento dei caratteri finali nella stringa convertita. 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. Se ad esempio si esegue il cast di dati di tipo carattere a un tipo di dati DT_STR utilizzando 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.
Per ulteriori informazioni sulla struttura dei tipi di dati date, vedere Tipi di dati di Integration Services.
Esempi della conversione di tipi di dati SSIS
In questo esempio viene eseguito il cast di un valore numerico a un Integer.
(DT_I4) 3.57
In questo esempio viene eseguito il cast di un Integer a una stringa di caratteri utilizzando la tabella codici 1252.
(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).
(DT_WSTR,3)"Cat"
In questo esempio viene eseguito il cast di un valore integer a un valore decimale con scala pari a 2.
(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.
(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 utilizzando la tabella codici 1252.
(DT_STR,50,1252)FirstName
In questo esempio viene eseguito il cast del valore letterale stringa "True" a un valore booleano.
(DT_BOOL)"True"
In questo esempio viene eseguito il cast di un valore letterale stringa a 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. Nel tipo di dati DT_DBTIME2 possono essere specificate da 0 a 7 cifre per i secondi frazionari.
(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. Nel tipo di dati DT_DBTIMESTAMP2 possono essere specificate da 0 a 7 cifre per i secondi frazionari.
(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. Nel tipo di dati DT_DBTIMESTAMPOFFSET possono essere specificate da 0 a 7 cifre per i secondi frazionari.
(DT_DBTIMESTAMPOFFSET, 7) "1999-10-11 16:34:52.1234567 + 5:35"
Vedere anche