Sintassi (SSIS)Syntax (SSIS)

La sintassi delle espressioni di Integration ServicesIntegration Services è simile a quella utilizzata nei linguaggi C e C#.The Integration ServicesIntegration Services expression syntax is similar to the syntax that the C and C# languages use. Le espressioni includono elementi quali identificatori (colonne e variabili), valori letterali, operatori e funzioni.Expressions include elements such as identifiers (columns and variables), literals, operators, and functions. In questo argomento vengono riepilogati i requisiti specifici della sintassi dell'analizzatore di espressioni, in relazione ai diversi elementi delle espressioni.This topic summarizes the unique requirements of the expression evaluator syntax as they apply to different expression elements.

Nota

Nella versioni precedenti di Integration ServicesIntegration Servicesera presente un limite di 4000 caratteri sul risultato della valutazione di un'espressione quando il tipo di dati Integration ServicesIntegration Services del risultato era DT_WSTR o DT_STR.In previous releases of Integration ServicesIntegration Services, there was a 4000-character limit on the evaluation result of an expression when the result had the Integration ServicesIntegration Services data type DT_WSTR or DT_STR. Questo limite è stato eliminato.This limit has been removed.

Per esempi di espressioni che usano operatori e funzioni specifiche, vedere l'argomento relativo a ogni operatore e funzione negli argomenti: Operatori (espressione SSIS) e Funzioni (espressione SSIS).For sample expressions that use specific operators and functions, see the topic about each operator and function in the topics: Operators (SSIS Expression) and Functions (SSIS Expression).

Per esempi di espressioni che usano più operatori e funzioni, nonché identificatori e valori letterali, vedere Esempi di espressioni avanzate di Integration Services.For sample expressions that use multiple operators and functions as well as identifiers and literals, see Examples of Advanced Integration Services Expressions.

Per espressioni di esempio da usare nelle espressioni di proprietà, vedere Usare le espressioni di proprietà nei pacchetti.For sample expressions to use in property expressions, see Use Property Expressions in Packages.

IdentificatoriIdentifiers

Le espressioni possono includere identificatori di colonna e di variabile.Expressions can include column and variable identifiers. È possibile utilizzare colonne esistenti nell'origine dei dati oppure colonne create da trasformazioni nel flusso di dati.The columns can originate in the data source or can be created by transformations in the data flow. Nelle espressioni è possibile utilizzare identificatori di derivazione per fare riferimento alle colonne.Expressions can use lineage identifiers to refer to columns. Gli identificatori di derivazione sono numeri che identificano in modo univoco gli elementi di un pacchetto.Lineage identifiers are numbers that uniquely identify package elements. Per fare riferimento a un identificatore di derivazione nell'ambito di un'espressione, è necessario anteporvi un simbolo di cancelletto (#).Lineage identifiers, referenced in an expression, must include the pound (#) prefix. Per fare riferimento all'identificatore di derivazione 138, ad esempio, è necessario specificare #138.For example, the lineage identifier 138 is referenced using #138.

Le espressioni possono includere variabili personalizzate e le variabili di sistema disponibili in SSISSSIS .Expressions can include the system variables that SSISSSIS provides and custom variables. Quando in un'espressione viene fatto riferimento a una variabile, è necessario anteporre il prefisso @ al nome della variabile.Variables, when referenced in an expression, must include the @ prefix. Ad esempio, il Counter variabile viene fatto riferimento utilizzando @Counter.</span><span class="sxs-lookup">For example, the Counter variable is referenced using @Counter.</span></span> Il carattere @ non fa parte del nome della variabile, ma consente all'analizzatore di espressioni di identificarla come tale.The @ character is not part of the variable name; it only indicates to the expression evaluator that the identifier is a variable. Per altre informazioni, vedere Identificatori (SSIS).For more information, see Identifiers (SSIS).

Valori letteraliLiterals

Le espressioni possono includere valori letterali numerici, stringa e booleani.Expressions can include numeric, string, and Boolean literals. I valori letterali stringa utilizzati nelle espressioni devono essere racchiusi tra virgolette.String literals used in expressions must be enclosed in quotation marks. Le virgolette non devono essere invece utilizzate per i valori letterali numerici e booleani.Numeric and Boolean literals do not take quotation marks. Il linguaggio delle espressioni include sequenze di escape per i caratteri di escape più comuni.The expression language includes escape sequences for characters that are frequently escaped. Per altre informazioni, vedere Valori letterali (SSIS).For more information, see Literals (SSIS).

OperatoriOperators

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#.The expression evaluator provides a set of operators that provides functionality similar to the set of operators in languages such as Transact-SQL, C++, and C#. Oltre a questi, il linguaggio delle espressioni include anche operatori aggiuntivi e utilizza simboli diversi da quelli abitualmente utilizzati in altri linguaggi.However, the expression language includes additional operators and uses different symbols than those you may be familiar with. Per altre informazioni, vedere Operatori (espressione SSIS).For more information, see Operators (SSIS Expression).

Operatore per la risoluzione degli spazi dei nomiNamespace Resolution Operator

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.Expressions use the namespace resolution operator (::) to disambiguate variables that have the same name. 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.By using the namespace resolution operator, you can qualify the variable with its namespace, which makes it possible to use multiple variables with the same name in a package.

Operatore castCast Operator

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.The cast operator converts expression results, column values, variable values, and constants from one data type to another. L'operatore cast del linguaggio delle espressioni è simile a quello disponibile nei linguaggi C e C#.The cast operator provided by the expression language is similar to the one provided by the C and C# languages. In Transact-SQL questa funzionalità è offerta dalle funzioni CAST e CONVERT.In Transact-SQL, the CAST and CONVERT functions provide this functionality. La sintassi dell'operatore cast presenta tuttavia le seguenti differenze rispetto a quella delle funzioni CAST e CONVERT:The syntax of the cast operator is different from ones used by CAST and CONVERT in the following ways:

  • È possibile utilizzare un'espressione come argomento.It can use an expression as an argument.

  • La sintassi non include la parola chiave CAST.Its syntax does not include the CAST keyword.

  • La sintassi non include la parola chiave AS.Its syntax does not include the AS keyword.

Operatore condizionaleConditional Operator

L'operatore condizionale restituisce una delle due espressioni specificate, in base al valore restituito da un'espressione booleana.The conditional operator returns one of two expressions, based on the evaluation of a Boolean expression. L'operatore condizionale del linguaggio delle espressioni è simile a quello disponibile nei linguaggi C e C#.The conditional operator provided by the expression language is similar to the one provided by the C and C# languages. Nelle espressioni MDX questo tipo di funzionalità è offerto dalla funzione IIF.In multidimensional expressions (MDX), the IIF function provides similar functionality.

Operatori logiciLogical Operators

Il linguaggio delle espressioni supporta il carattere !The expression language supports the ! per l'operatore NOT logico.character for the logical NOT operator. In Transact-SQL l'operatore !In Transact-SQL, the ! è incorporato nel set degli operatori relazionali.operator is built into the set of relational operators. Transact-SQL offre ad esempio gli operatori > e !>.For example, Transact-SQL provides the > and the !> operators. Il linguaggio delle espressioni di SSISSSIS non supporta l'uso dell'operatore !The SSISSSIS expression language does not support the combination of the ! in combinazione con altri operatori.operator and other operators. Non è ad esempio possibile combinare !For example, it is not valid to combine ! e > per ottenere !>.and > into !>. Il linguaggio delle espressioni supporta tuttavia la combinazione predefinita di caratteri !=, che rappresenta l'operatore "diverso da".However, the expression language does support a built-in != combination of characters for the not-equal-to comparison.

Operatori di uguaglianzaEquality Operators

La grammatica dell'analizzatore di espressioni prevede l'operatore di uguaglianza ==,The expression evaluator grammar provides the == equality operator. che equivale all'operatore = di Transact-SQL e all'operatore == di C#.This operator is the equivalent of the = operator in Transact-SQL and the == operator in C#.

FunzioniFunctions

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#.The expression language includes date and time functions, mathematical functions, and string functions that are similar to Transact-SQL functions and C# methods.

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.A few functions have the same names as Transact-SQL functions, but have subtly different functionality in the expression evaluator.

  • 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, the ISNULL function replaces null values with a specified value, whereas the expression evaluator ISNULL function returns a Boolean based on whether an expression is null.

  • 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.In Transact-SQL, the ROUND function includes an option to truncate the result set, whereas the expression evaluator ROUND function does not.

    Per altre informazioni, vedere Funzioni (espressione SSIS).For more information, see Functions (SSIS Expression).

Utilizzo di un'espressione in un componente flusso di datiUse an Expression in a Data Flow Component