Sintassi (SSIS)

La sintassi delle espressioni di Integration Services è simile a quella utilizzata nei linguaggi C e C#. Le espressioni includono elementi quali identificatori (colonne e variabili), valori letterali, operatori e funzioni. In questo argomento vengono riepilogati i requisiti specifici della sintassi dell'analizzatore di espressioni, in relazione ai diversi elementi delle espressioni.

Per esempi di espressioni che utilizzano operatori e funzioni specifiche, vedere l'argomento relativo a ogni operatore e funzione negli argomenti Operatori (SSIS) e Funzioni (SSIS).

Per esempi di espressioni che utilizzano più operatori e funzioni, nonché identificatori e valori letterali, vedere Espressioni avanzate in Integration Services.

Per esempi di espressioni da utilizzare nelle espressioni di proprietà, vedere Utilizzo delle espressioni di proprietà nei pacchetti.

In alcuni casi, in Integration Services viene imposto un limite di 4000 caratteri alla lunghezza delle espressioni. Se il risultato della valutazione di un'espressione ha il tipo di dati Integration Services DT_WSTR o DT_STR, l'espressione verrà troncata a 4000 caratteri. Se il tipo di risultato di una sottoespressione è DT_STR o DT_WSTR, probabilmente la sottoespressione verrà troncata a 4000 caratteri, indipendentemente dal tipo di risultato dell'espressione globale.

I troncamenti vengono gestiti in modo diverso in base al componente Integration Services in cui si verificano.

  • In trasformazioni quali Colonna derivata e Suddivisione condizionale, il troncamento può essere facilmente gestito configurando le trasformazioni in modo da ignorare i troncamenti o utilizzare un output degli errori per reindirizzare a un output diverso le righe di dati sottoposte a troncamento.

  • In fase di esecuzione, il troncamento delle espressioni utilizzate per impostare i valori di espressioni di proprietà, variabili e vincoli di precedenza genera un errore e può impedire l'esecuzione del pacchetto.

  • In fase di progettazione, il troncamento di un valore letterale stringa genera un avviso se si verifica nella pipeline e un errore se si verifica in fase di esecuzione.

Identificatori

Le espressioni possono includere identificatori di colonna e di variabile. È possibile utilizzare colonne esistenti nell'origine dei dati oppure colonne create da trasformazioni nel flusso di dati. Nelle espressioni è possibile utilizzare identificatori di derivazione per fare riferimento alle colonne. Gli identificatori di derivazione sono numeri che identificano in modo univoco gli elementi di un pacchetto. Per fare riferimento a un identificatore di derivazione nell'ambito di un'espressione, è necessario anteporvi un simbolo di cancelletto (#). Per fare riferimento all'identificatore di derivazione 138, ad esempio, è necessario specificare #138.

Le espressioni possono includere variabili personalizzate e le variabili di sistema disponibili in SSIS. Quando in un'espressione viene fatto riferimento a una variabile, è necessario anteporre il prefisso @ al nome della variabile. Per fare riferimento alla variabile Counter, ad esempio, è necessario specificare @Counter. Il carattere @ non fa parte del nome della variabile, ma consente all'analizzatore di espressioni di identificarla come tale. Per ulteriori informazioni, vedere Identificatori (espressioni SSIS).

Valori letterali

Le espressioni possono includere valori letterali stringa, numerici e booleani. I valori letterali stringa utilizzati nelle espressioni devono essere racchiusi tra virgolette. Le virgolette non devono essere invece utilizzate per i valori letterali numerici e booleani. Il linguaggio delle espressioni include sequenze di escape per i caratteri di escape più comuni. Per ulteriori informazioni, vedere Valori letterali (SSIS).

Operatori

L'analizzatore di espressioni fornisce un set di operatori con funzionalità analoghe a quelle offerte dai set di operatori di linguaggi quali Transact-SQL, C++ e C#. Oltre a questi, il linguaggio delle espressioni include anche operatori aggiuntivi e utilizza simboli diversi da quelli abitualmente utilizzati in altri linguaggi. Per ulteriori informazioni, vedere Operatori (SSIS).

Operatore per la risoluzione degli spazi dei nomi

Nelle espressioni è possibile utilizzare l'operatore per la risoluzione degli spazi dei nomi (::) per eliminare le ambiguità dovute alla presenza di variabili con lo stesso nome. L'operatore per la risoluzione degli spazi dei nomi consente di qualificare ogni variabile con il relativo spazio dei nomi, permettendo così di utilizzare più variabili con lo stesso nome nell'ambito di un pacchetto.

Operatore cast

L'operatore cast consente di convertire da un tipo di dati all'altro i risultati delle espressioni, i valori delle colonne, i valori delle variabili e le costanti. L'operatore cast del linguaggio delle espressioni è simile a quello disponibile nei linguaggi C e C#. In Transact-SQL questa funzionalità è offerta dalle funzioni CAST e CONVERT. La sintassi dell'operatore cast presenta tuttavia le seguenti differenze rispetto a quella delle funzioni CAST e CONVERT:

  • È possibile utilizzare un'espressione come argomento.

  • La sintassi non include la parola chiave CAST.

  • La sintassi non include la parola chiave AS.

Operatore condizionale

L'operatore condizionale restituisce una delle due espressioni specificate, in base al valore restituito da un'espressione booleana. L'operatore condizionale del linguaggio delle espressioni è simile a quello disponibile nei linguaggi C e C#. Nelle espressioni MDX questo tipo di funzionalità è offerto dalla funzione IIF.

Operatori logici

Nel linguaggio delle espressioni il carattere ! rappresenta l'operatore logico NOT. In Transact-SQL l'operatore ! è incorporato nel set degli operatori relazionali. Transact-SQL offre ad esempio gli operatori > e !>. Il linguaggio delle espressioni di SSIS non supporta l'utilizzo dell'operatore ! in combinazione con altri operatori. Non è ad esempio possibile combinare ! e > per ottenere !>. Il linguaggio delle espressioni supporta tuttavia la combinazione predefinita di caratteri !=, che rappresenta l'operatore "diverso da".

Operatori di uguaglianza

La grammatica dell'analizzatore di espressioni prevede l'operatore di uguaglianza ==, che equivale all'operatore = di Transact-SQL e all'operatore == di C#.

Funzioni

Il linguaggio delle espressioni include funzioni di data e ora e funzioni per i valori stringa simili alle funzioni di Transact-SQL e ai metodi di C#.

Anche se in alcuni casi i nomi delle funzioni dell'analizzatore sono uguali a quelli delle analoghe funzioni di Transact-SQL, esistono tuttavia alcune differenze funzionali.

  • In Transact-SQL la funzione ISNULL sostituisce i valori Null con un valore specificato, mentre la funzione ISNULL dell'analizzatore di espressioni restituisce un valore booleano che indica se l'espressione restituisce Null o meno.

  • In Transact-SQL la funzione ROUND include un'opzione che consente di troncare il set di risultati, ma per la funzione ROUND dell'analizzatore di espressioni tale opzione non è disponibile.

Per ulteriori informazioni, vedere Funzioni (SSIS).