Condividi tramite


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.

Cast validi e non validi tra tipi di dati

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

Altre risorse

Operatori (SSIS)

Guida in linea e informazioni

Assistenza su SQL Server 2005