Cast (SSIS)
Converte 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 utilizza l'operatore cast con le date è necessario prestare particolare attenzione.
Quando si esegue il cast di una stringa a un tipo di dati DT_DATE, o viceversa, vengono utilizzate le impostazioni internazionali della trasformazione.
[!NOTA] La data viene restituita nel formato ISO AAAA-MM-GG, anche se le impostazioni internazionali in uso specificano un formato diverso.
Il cast di una stringa a un tipo di dati date diverso da DT_DATE restituisce i risultati seguenti.
Tipo di dati Formato di data DT_DBDATE
aaaa-mm-gg
DT_FILETIME
aaaa-mm-gg hh:mm:ss:fff
DT_DBTIME
hh:mm:ss
DT_DBTIMESTAMP
aaaa-mm-gg hh:mm:ss:fffffffff
Nel formato di data per DT_FILETIME, fff è un valore compreso tra 0 e 999. È lo stesso formato del tipo di dati SYSTEMTIME di Windows.
Nel formato di data per DT_DBTIMESTAMP, fffffffff è un valore compreso tra 0 e 999999999.
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.
Esempi
In questo esempio viene eseguito il cast di un valore numerico a un valore 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.
(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"
Vedere anche
Concetti
Precedenza e associatività degli operatori