confronto di dati stringaComparing String Data

Il confronto tra stringhe costituisce una parte importante di molte delle trasformazioni eseguite da Integration ServicesIntegration Servicese viene utilizzato anche nella valutazione di espressioni in variabili ed espressioni di proprietà.String comparisons are an important part of many of the transformations performed by Integration ServicesIntegration Services, and string comparisons are also used in the evaluation of expressions in variables and property expressions. La trasformazione Ordinamento, ad esempio, confronta i valori in un set di dati per disporre i dati in ordine crescente o decrescente.For example, the Sort transformation compares values in a dataset to sort data in ascending or descending order.

Configurazione di trasformazioni per i confronti di stringheConfiguring Transformations for String Comparisons

Le trasformazioni Ordinamento, Aggregazione, Raggruppamento fuzzy e Ricerca fuzzy possono essere personalizzate modificando la modalità di confronto delle stringhe a livello di colonna.The Sort, Aggregate, Fuzzy Grouping, and Fuzzy Lookup transformations can be customized to change the way strings are compared at the column level. È ad esempio possibile specificare di ignorare maiuscole e minuscole nel confronto, ovvero considerare identici i caratteri maiuscoli e minuscoli.For example, you can specify that a comparison ignores case, which means that uppercase and lowercase characters are treated as the same character.

Le trasformazioni seguenti utilizzano espressioni che possono includere confronti tra stringhe.The following transformations use expressions that can include string comparisons.

  • La trasformazione Suddivisione condizionale può utilizzare confronti tra stringhe nelle espressioni per determinare a quale output inviare le righe di dati.The Conditional Split transformation can use string comparisons in expressions to determine which output to send the data row to. Per altre informazioni, vedere Trasformazione Suddivisione condizionale.For more information, see Conditional Split Transformation.

  • La trasformazione Colonna derivata può utilizzare confronti tra stringhe nelle espressioni per generare nuovi valori di colonna.The Derived Column transformation can use string comparisons in expressions to generate new column values. Per altre informazioni, vedere Trasformazione Colonna derivata.For more information, see Derived Column Transformation.

    Anche le variabili, i mapping di variabili e i vincoli di precedenza utilizzano espressioni, che possono includere confronti tra stringhe.Variables, variable mappings, and precedence constraints also use expressions, which can include string comparisons. Per altre informazioni sulle espressioni, vedere Espressioni di Integration Services (SSIS).For more information about expressions, see Integration Services (SSIS) Expressions.

Elaborazione durante il confronto di stringheProcessing during String Comparison

A seconda dei dati e della configurazione della trasformazione, durante il confronto dei dati stringa è possibile eseguire le operazioni di elaborazione seguenti:Depending on the data and the configuration of the transformation, the following processing may occur during the comparison of string data:

  • Conversione dei dati in formato Unicode.Converting data to Unicode. Se i dati dell'origine non sono già in formato Unicode, verranno automaticamente convertiti in tale formato prima dell'esecuzione del confronto.If the source data is not already Unicode, the data is automatically converted to Unicode before the comparison occurs.

  • Utilizzo delle impostazioni locali per applicare regole specifiche della lingua per l'interpretazione del tipo di ordinamento e dei valori di data, ora e decimali.Using locale to apply locale-specific rules for interpreting date, time, decimal data, and sort order.

  • Applicazione di opzioni di confronto a livello di colonna per definire la distinzione tra maiuscole e minuscole per i confronti.Applying comparison options at the column level to change the sensitivity of comparisons.

Conversione di dati stringa in formato UnicodeConverting String Data to Unicode

A seconda della configurazione e delle operazioni eseguite da una trasformazione, i dati stringa possono essere convertiti nel tipo di dati DT_WSTR, ovvero una rappresentazione Unicode dei caratteri delle stringhe.Depending on the operations that the transformation performs and the configuration of the transformation, string data may be converted to the DT_WSTR data type, which is a Unicode representation of string characters.

I dati stringa con il tipo di dati DT_STR vengono convertiti in Unicode utilizzando la tabella codici della colonna.String data that has the DT_STR data type is converted to Unicode using the code page of the column. Integration ServicesIntegration Services supporta le tabelle codici a livello di colonna e ogni colonna può essere convertita usando una tabella codici diversa. supports code pages at the column level, and each column can be converted by using a different code page.

Nella maggior parte dei casi Integration ServicesIntegration Services è in grado di identificare la tabella codici appropriata basandosi sull'origine dati.In most cases, Integration ServicesIntegration Services can identify the correct code page from the data source. In SQL ServerSQL Server , ad esempio, è possibile impostare regole di confronto a livello di database e di colonna.For example, in SQL ServerSQL Server you can set a collation at the database and column levels. La tabella codici viene ricavata dalle regole di confronto di SQL ServerSQL Server , che possono essere quelle di Windows o le regole di confronto SQL.The code page is derived from a SQL ServerSQL Server collation, which can be either a Windows or an SQL collation.

Se in Integration ServicesIntegration Services viene specificata una tabella codici imprevista oppure se tramite il pacchetto viene effettuato l'accesso a un'origine dati usando un provider da cui non vengono fornite informazioni sufficienti per determinare la tabella codici appropriata, è possibile specificare una tabella codici predefinita nell'origine e nella destinazione OLE DB.If Integration ServicesIntegration Services provides an unexpected code page, or if the package accesses a data source by using a provider that does not supply sufficient information to determine the correct code page, you can specify a default code page in the OLE DB source and the OLE DB destination. Le tabelle codici predefinite vengono utilizzate al posto di quelle specificate da Integration ServicesIntegration Services .The default code pages are used instead of the code pages that Integration ServicesIntegration Services provides.

I file non hanno tabelle codici,Files do not have code pages. ma le gestioni connessioni file flat e per più file flat utilizzate dai pacchetti per connettersi ai file includono una proprietà che consente di specificare le tabelle codici dei file.Instead, the Flat File and the Multiple Flat Files connection managers that a package uses to connect to file data include a property for specifying the code page of the file. La tabella codici può essere impostata solo a livello di file, non a livello di colonna.The code page can be set at the file level only, not at the column level.

Impostazione delle impostazioni localiSetting Locale

Integration ServicesIntegration Services non usa la tabella codici per ricavare regole specifiche delle impostazioni locali per l'ordinamento dei dati o l'interpretazione di valori di data, ora e decimali. does not use the code page to infer locale-specific rules for sorting data or interpreting date, time, and decimal data. La trasformazione legge invece le impostazioni locali specificate dalla proprietà LocaleId del componente del flusso di dati, dell'attività Flusso di dati, del contenitore o del pacchetto.Instead, the transformation reads the locale that is set by the LocaleId property on the data flow component, Data Flow task, container, or package. Per impostazione predefinita, le impostazioni locali di una trasformazione vengono ereditate dalla relativa attività Flusso di dati, che a sua volta le eredita dal pacchetto.By default, the locale of a transformation is inherited from its Data Flow task, which in turn inherits from the package. Se l'attività Flusso di dati si trova in un contenitore, ad esempio Ciclo For, erediterà le impostazioni locali dal contenitore.If the Data Flow task is in a container such as the For Loop container, it inherits its locale from the container.

È inoltre possibile specificare impostazioni locali per le gestioni connessioni file flat e per più file flat.You can also specify a locale for a Flat File connection manager and a Multiple Flat Files connection manager.

Impostazione delle opzioni di confrontoSetting Comparison Options

Le impostazioni locali specificano le regole di base per il confronto dei dati stringa,The locale provides the basic rules for comparing string data. ad esempio la posizione di ogni lettera nell'alfabeto.For example, the locale specifies the sort position of each letter in the alphabet. Tali regole possono tuttavia non essere sufficienti per i confronti eseguiti da alcune trasformazioni e Integration ServicesIntegration Services supporta un set di opzioni di confronto avanzate che consentono di eseguire confronti più specifici di quelli previsti dalle regole di confronto delle impostazioni locali.However, these rules may not be sufficient for the comparisons that some transformations perform, and Integration ServicesIntegration Services supports a set of advanced comparison options that go beyond the comparison rules of a locale. Tali opzioni di confronto vengono impostate a livello di colonna.These comparison options are set at the column level. È ad esempio disponibile un'opzione di confronto che consente di ignorare i caratteri senza spaziatura.For example, one of the comparison options lets you ignore nonspacing characters. Questa opzione consente di ignorare segni diacritici quale l'accento, di modo che caratteri come "a" e "á" vengano considerati identici ai fini del confronto.The effect of this option is to ignore diacritics such as the accent, which makes "a" and "á" identical for comparison purposes.

Nella tabella seguente vengono descritte le opzioni di confronto disponibili e uno stile di ordinamento.The following table describes the comparison options and a sort style.

Opzione di confrontoComparison option DescriptionDescription
Ignora maiuscole/minuscoleIgnore case Specifica se nel confronto viene fatta distinzione tra lettere maiuscole e minuscole.Specifies whether the comparison distinguishes between uppercase and lowercase letters. Se questa opzione è impostata, nel confronto tra stringhe verrà ignorata la combinazione di maiuscole e minuscole.If this option is set, the string comparison ignores case. Ad esempio, la stringa "ABC" verrà considerata identica alla stringa "abc".For example, "ABC" becomes the same as "abc".
Ignora Katakana/HiraganaIgnore kana type Specifica se nel confronto viene fatta distinzione tra i due tipi di caratteri Kana giapponesi, Hiragana e Katakana.Specifies whether the comparison distinguishes between the two types of Japanese kana characters: hiragana and katakana. Se questa opzione è impostata, nel confronto tra stringhe verrà ignorata la distinzione tra Katakana e Hiragana.If this option is set, the string comparison ignores kana type.
Ignora larghezza caratteriIgnore character width Specifica se nel confronto viene fatta distinzione tra un carattere a un byte (metà larghezza) e lo stesso carattere rappresentato con due byte (larghezza intera).Specifies whether the comparison distinguishes between a single-byte character and the same character when it is represented as a double-byte character. Se questa opzione è impostata, nel confronto tra stringhe la rappresentazione a un byte e quella a due byte dello stesso carattere verranno considerate uguali.If this option is set, the string comparison treats single-byte and double-byte representations of the same character as identical.
Ignora caratteri senza spaziaturaIgnore nonspacing characters Specifica se nel confronto viene fatta distinzione tra i caratteri con spaziatura e quelli con segni diacritici.Specifies whether the comparison distinguishes between spacing characters and diacritics. Se questa opzione è impostata, nel confronto verranno ignorati i segni diacritici.If this option is set, the comparison ignores diacritics. Ad esempio, il carattere "å" verrà considerato uguale al carattere "a".For example, "å" is equal to "a".
Ignora simboliIgnore symbols Specifica se nel confronto viene fatta distinzione tra lettere e simboli, ad esempio gli spazi, i segni di punteggiatura, i simboli di valuta e i simboli matematici.Specifies whether the comparison distinguishes between letter characters and symbols such as white-space characters, punctuation, currency symbols, and mathematical symbols. Se questa opzione è impostata, nel confronto verranno ignorati i simboli.If this option is set, the string comparison ignores symbols. Ad esempio, la stringa " New York" verrà considerata identica alla stringa "New York" e la stringa "ABC" verrà considerata identica alla stringa "ABC"'.For example, " New York" becomes the same as "New York" and "ABC" is the same as "ABC"'.
Ordina i segni di punteggiatura come simboliSort punctuation as symbols Specifica se nel confronto tutti i segni di punteggiatura, ad eccezione del segno meno e dell'apostrofo, precedono i caratteri alfanumerici.Specifies whether the comparison sorts all punctuation symbols, except the hyphen and apostrophe, before the alphanumeric characters. Ad esempio, se questa opzione è impostata la stringa ".ABC" precederà la stringa "ABC".For example, if this option is set, ".ABC" sorts before "ABC".

Le trasformazioni Ordinamento, Aggregazione, Raggruppamento fuzzy e Ricerca fuzzy includono queste opzioni per il confronto dei dati.The Sort, Aggregate, Fuzzy Grouping and Fuzzy Lookup transformations include these options for comparing data.

Nella finestra Editor avanzato per le trasformazioni Raggruppamento fuzzy e Ricerca fuzzy è visualizzato il flag di confronto FullySensitive .The FullySensitive comparison flag displays in the Advanced Editor dialog box for the Fuzzy Grouping and Fuzzy Lookup transformations. Se si seleziona il flag di confronto FullySensitive vengono applicate tutte le opzioni di confronto.Selecting the FullySensitive comparison flag means that all the comparison options apply.

Vedere ancheSee Also

Tipi di dati di Integration Services Integration Services Data Types
Analisi veloce Fast Parse
Analisi standardStandard Parse