Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
SSIS Integration Runtime in Azure Data Factory
Le espressioni possono includere valori letterali numerici, stringa e booleani. L'analizzatore di espressioni supporta vari valori letterali numerici, quali costanti intere, decimali e a virgola mobile. Il valutatore di espressioni supporta anche i suffissi long e float, che specificano come il valutatore di espressioni gestisce i valori, e la notazione scientifica nei letterali numerici.
Letterali numerici
L'analizzatore di espressioni supporta tipi di dati numerici integrali e non integrali. Supporta anche gli identificatori di lineage, che sono gli unici identificatori numerici per gli elementi del pacchetto. Gli identificatori di linea sono numeri, ma non puoi usarli nelle operazioni matematiche.
L'analizzatore di espressioni supporta i suffissi, che consentono di indicare come gestire i valori letterali numerici. Ad esempio, puoi indicare che l'intero 37 è trattato come un tipo di dato intero lungo scrivendo 37L o 37l.
I suffissi per i valori letterali numerici sono elencati nella tabella seguente.
| Suffisso | Descrizione |
|---|---|
L o l |
Valore letterale numerico long. |
U o u |
Letterale numerico senza segno. |
E o e |
L'esponente nella notazione scientifica |
Nella tabella seguente sono elencati gli elementi delle espressioni numeriche e le rispettive espressioni regolari.
| Elemento dell'espressione | Espressione regolare | Descrizione |
|---|---|---|
Cifre espresse come D. |
[0-9] |
Qualsiasi cifra. |
Notazione scientifica espressa come E. |
[Ee][+-]?{D}+ |
Maiuscole o minuscole e, opzionalmente + o -, e una o più cifre come definito in D. |
Suffisso per numeri interi indicato come IS. |
(([lL]?[uU]?)|([uU]?[lL]?)) |
Opzionalmente, maiuscole o minuscole u e l /o una combinazione di u e l.
U oppure u indica un valore senza segno.
L oppure l indica un valore lungo. |
Suffisso in virgola mobile espresso come FS. |
([f|F]|[l|L]) |
Maiuscole o minuscole f o l.
F oppure f indica un valore float (DT_R4 tipo di dato).
L oppure l indica un valore lungo (DT_R8 tipo di dato). |
Cifra esadecimale espressa come H. |
[a-fA-F0-9] |
Qualsiasi cifra esadecimale. |
Nella tabella seguente vengono descritti i valori letterali numerici validi nel linguaggio delle espressioni regolari.
| Espressione regolare | Descrizione |
|---|---|
{D}+{IS} |
Un letterale numerico integrale con almeno una cifra (D) e, opzionalmente, il suffisso lungo e senza segno (IS). Esempi: 457, 785u, 986L, e 7945ul. |
{D}+{E}{FS} |
Un letterale numerico non intero con almeno una cifra (D), in notazione scientifica e con il suffisso long o float. Esempi: 4E8l, 13e-2f, e 5E+L. |
{D}*"."{D}+{E}?{FS} |
Un letterale numerico non integrale con un decimale, una frazione decimale con almeno una cifra (D), un esponente opzionale (E), e un float o un identificatore lungo (FS). Questo valore letterale numerico ha il tipo di dati DT_R4 o DT_R8. Esempi: 6.45E3f, .89E-2l, e 1.05E+7F. |
{D}+"."{D}*{E}?{FS} |
Un letterale numerico non integrale con almeno una cifra significativa (D), un decimale, un esponente (E), e un float o un identificatore lungo (FS). Questo valore letterale numerico ha il tipo di dati DT_R4 o DT_R8. Esempi: 1.E-4f, 4.6E6L, e 8.365E+2f. |
{D}*.{D}+ |
Valore letterale numerico non integrale con precisione e scala. Ha una cifra decimale e una frazione decimale con almeno una cifra (D). Questo valore letterale numerico ha il tipo di dati DT_NUMERIC. Esempi: .9, 5.8, e 0.346. |
{D}+.{D}* |
Valore letterale numerico non integrale con precisione e scala. Ha almeno una cifra significativa (D) e un decimale. Questo valore letterale numerico è di tipo di dati DT_NUMERIC. Esempi: 6., 0.2, e 8.0. |
#{D}+ |
Identificatore di derivazione. È costituito dal carattere pound (#) e almeno una cifra (D). Esempi: #123. |
0[xX]{H}+{uU} |
Un literal numerico in formato esadecimale. Include uno zero, una maiuscola o minuscola x, almeno una maiuscola He, opzionalmente, il suffisso senza segno. Esempi: 0xFF0A e 0X000010000U. |
Per altre informazioni sui tipi di dati utilizzati dall'analizzatore di espressioni, vedere Tipi di dati di Integration Services.
Le espressioni possono includere valori letterali numerici con tipi di dati diversi. Quando l'analizzatore di espressioni valuta espressioni di questo tipo, ne converte i dati in tipi compatibili. Per altre informazioni, vedere Tipi di dati nelle espressioni di Integration Services.
Tuttavia, la conversione tra alcuni tipi di dati richiede un cast esplicito. L'analizzatore di espressioni dispone di un operatore cast per la conversione esplicita dei tipi di dati. Per altre informazioni, vedere Cast (espressione SSIS).
Mappare i valori letterali numerici ai tipi di dati di Integration Services
Il valutatore di espressioni converte i letterali numerici come segue:
Un letterale numerico integrale si mappa a un tipo di dato intero basandosi sul suo suffisso:
Suffisso Tipo di risultato Nessuno DT_I4 UDT_UI4 LDT_I8 ULDT_UI8 Importante
Se il suffisso lungo (
Lol) è assente, il valutatore di espressioni mappa i valori con segno al tipo di dato DT_I4 e i valori senza segno al tipo di dato DT_UI4 anche se il valore sovrasta il tipo di dato.Un letterale numerico che include un esponente si converte sia nel tipo di dato DT_R4 che in quello DT_R8. Se l'espressione include il suffisso lungo, essa si converte in DT_R8. Se include il suffisso float, si converte nel tipo di dato DT_R4.
Se un letterale numerico non integrale include
Fof, esso si mappa al tipo di dato DT_R4. Se includeLole il numero è un intero, si mappa al tipo di dato DT_I8. Se è un numero reale, si mappa al tipo di dato DT_R8. Se include il suffisso long, si converte nel tipo di dato DT_R8.Un valore letterale numerico non intero con precisione e scala corrisponde al tipo di dati DT_NUMERIC.
Valori letterali di stringa
Racchiudi i valori letterali di stringa tra virgolette. Il linguaggio delle espressioni include un set di sequenze di escape per i caratteri di escape più comuni, quali i caratteri non stampabili e le virgolette.
Una stringa letterale è costituita da zero o più caratteri racchiusi tra virgolette. Se una stringa contiene virgolette, precedile con un carattere di escape in modo che l'espressione possa essere analizzata. Una stringa può contenere qualsiasi carattere di due byte tranne \x0000, perché il \x0000 carattere è il terminatore nullo di una stringa.
Le stringhe possono includere altri caratteri che richiedono una sequenza di escape. Le sequenze di escape per i valori letterali stringa sono elencate nella tabella seguente.
| Sequenza di escape | Descrizione |
|---|---|
\a |
Avviso |
\b |
Backspace |
\f |
Avanzamento modulo |
\n |
Nuova riga |
\r |
Ritorno a capo |
\t |
Tabulazione orizzontale |
\v |
Tabulazione verticale |
\" |
Virgoletta |
\ |
Barra rovesciata |
\xhhhh |
Carattere Unicode in notazione esadecimale |
Valori letterali booleani
L'analizzatore di espressioni supporta i consueti valori letterali booleani: True e False. Il valutatore di espressione non è sensibile alla maiuscola e consente qualsiasi combinazione di lettere maiuscole e minuscole. Ad esempio, sia TRUE che True funzionano correttamente.
Nota
In un'espressione, devi delimitare un letterale booleano con spazi.