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.
Le espressioni possono includere valori letterali numerici, stringa e booleani. L'analizzatore di espressioni supporta un'ampia gamma di valori letterali numerici, ad esempio numeri interi, decimali e costanti a virgola mobile. L'analizzatore di espressioni supporta anche i suffissi long e float, che specificano il modo in cui l'analizzatore di espressioni gestisce i valori e la notazione scientifica nei valori letterali numerici.
Valori letterali numerici
L'analizzatore di espressioni supporta tipi di dati numerici integrali e non integrali. Supporta anche gli identificatori di derivazione, ovvero gli identificatori numerici univoci per gli elementi del pacchetto. Gli identificatori di derivazione sono numeri, ma non possono essere usati nelle operazioni matematiche.
L'analizzatore di espressioni supporta i suffissi, che è possibile usare per indicare come l'analizzatore di espressioni gestisce il valore letterale numerico. Ad esempio, è possibile indicare che l'intero 37 deve essere considerato come un tipo di dati long integer scrivendo 37L o 37l.
Nella tabella seguente sono elencati i suffissi per i valori letterali numerici.
| Suffisso | Descrizione |
|---|---|
| L o l | Numero letterale lungo. |
| U o u | Valore numerico non firmato. |
| E o e | Esponente della notazione scientifica |
Nella tabella seguente sono elencati gli elementi di espressione numerica e le relative espressioni regolari.
| Elemento dell'espressione | Espressione regolare | Descrizione |
|---|---|---|
| Numeri espressi come D. | [0-9] | Qualsiasi cifra. |
| Notazione scientifica espressa come E. | [Ee][+-]? {D}+ | E maiuscolo o minuscolo, facoltativamente + o -, e una o più cifre come definito in D. |
| Suffisso intero espresso come IS. | (([lL]? [uU]?)|([uU]? [lL]?)) | Opzionalmente, u e l in maiuscolo o minuscolo, o una combinazione di u e l. U o u indica un valore senza segno. L o l indica un valore long. |
| Suffisso float espresso come FS. | ([f|F]|[l|L]) | Maiuscole o minuscole f o l. F o f indica un valore float (tipo di dati DT_R4). L o l indica un valore long (tipo di dati DT_R8). |
| Cifra esadecimale espressa come H. | [a-fA-F0-9] | Qualsiasi cifra esadecimale. |
Nella tabella seguente vengono descritti i valori letterali numerici validi usando il linguaggio delle espressioni regolari.
| Espressione regolare | Descrizione |
|---|---|
| {D}+{IS} | Un valore letterale numerico intero con almeno una cifra (D) e, facoltativamente, il suffisso long e/o unsigned (IS). Esempi: 457, 785u, 986L e 7945ul. |
| {D}+{E}{FS} | Valore letterale numerico non integrale con almeno una cifra (D), notazione scientifica e il suffisso long o float. Esempi: 4E8l, 13e-2f e 5E+L. |
| {D}*"." {D}+{E}? {FS} | Valore letterale numerico non integrale con una posizione decimale, una frazione decimale con almeno una cifra (D), un esponente facoltativo (E) e un identificatore 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} | Valore letterale numerico non integrale con almeno una cifra significativa (D), una posizione decimale, un esponente (E) e un identificatore float o 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 posizione 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 una posizione decimale. Questo valore letterale numerico ha il tipo di dati DT_NUMERIC. Esempi: 6., 0.2 e 8.0. |
| #{D}+ | Identificatore di derivazione. È costituito dal carattere cancelletto (#) e da almeno una cifra numerica (D). Esempi: #123. |
| 0[xX]{H}+{uU} | Valore letterale numerico in formato esadecimale. Include uno zero, una x maiuscola o minuscola, almeno una H maiuscola e, facoltativamente, il suffisso senza segno. Esempi: 0xFF0A e 0X000010000U. |
Per altre informazioni sui tipi di dati usati 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 queste espressioni, 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 fornisce l'operatore cast per eseguire la conversione esplicita del tipo di dati. Per altre informazioni, vedere Cast (espressione SSIS).
Mappatura dei valori numerici letterali ai tipi di dati utilizzati da Integration Services
L'analizzatore di espressioni esegue le conversioni seguenti quando si valutano valori letterali numerici:
Viene eseguito il mapping di un valore letterale numerico integrale a un tipo di dati integer come indicato di seguito.
Suffisso Tipo di risultato Nessuno DT_I4 U DT_UI4 L DT_I8 UL DT_UI8 Importante
Se il suffisso long (L o l) è assente, l'analizzatore di espressioni mappa i valori con segno al tipo dati DT_I4 e i valori senza segno al tipo dati DT_UI4 anche se il valore supera i limiti del tipo dati.
Un valore letterale numerico che include un esponente viene convertito nel DT_R4 o nel tipo di dati DT_R8. Se l'espressione include il suffisso lungo, viene convertito in DT_R8; se include il suffisso float, viene convertito nel tipo di dati DT_R4.
Se un valore letterale numerico non integrale include F o f, esegue il mapping al tipo di dati DT_R4. Se include L o l e il numero è un numero intero, viene eseguito il mapping al tipo di dati DT_I8. Se si tratta di un numero reale, viene mappato al tipo di dati DT_R8. Se include il suffisso long, viene convertito nel tipo di dati DT_R8.
Un letterale numerico non integrale con precisione e scala si mappa al tipo di dati DT_NUMERIC.
Letterali di stringa
Le stringhe letterali devono essere racchiuse tra virgolette. Il linguaggio delle espressioni fornisce un set di sequenze di escape per caratteri comunemente sottoposti a escape, come caratteri non stampabili e virgolette.
Un valore letterale stringa è costituito da zero o più caratteri racchiusi tra virgolette. Se una stringa contiene virgolette, queste devono essere precedute da un carattere di escape affinché l'espressione venga analizzata. Qualsiasi carattere a due byte tranne \x0000 è consentito in una stringa, perché il carattere \x0000 è il carattere di terminazione Null di una stringa.
Le stringhe possono includere altri caratteri che richiedono una sequenza di escape. Nella tabella seguente sono elencate le sequenze di escape per i valori letterali stringa.
| Sequenza di escape | Descrizione |
|---|---|
| \a | Avviso |
| \b | Backspace |
| \f | Alimentazione modulo |
| \n | Nuova riga |
| \r | Ritorno a capo |
| \t | Tabulazione orizzontale |
| \v | Tabulazione verticale |
| \" | Virgoletta |
| Barra rovesciata | |
| \xhhhhh | Carattere Unicode nella notazione esadecimale |
Valori letterali booleani
L'analizzatore di espressioni supporta i normali valori letterali booleani: True e False. L'analizzatore di espressioni non fa distinzione tra maiuscole e minuscole e sono consentite combinazioni di lettere maiuscole e minuscole. Ad esempio, TRUE funziona esattamente come True.
Annotazioni
In un'espressione, un valore letterale booleano deve essere delimitato da spazi.
Contenuto correlato
Articolo tecnico, Foglio informativo sulle espressioni SSIS in pragmaticworks.com