Confronto dei dati di tipo stringa

Si applica a:SQL Server SSIS Integration Runtime in Azure Data Factory

Il confronto tra stringhe costituisce una parte importante di molte delle trasformazioni eseguite da Integration Services e viene utilizzato anche nella valutazione di espressioni in variabili ed espressioni di proprietà. La trasformazione Ordinamento, ad esempio, confronta i valori in un set di dati per disporre i dati in ordine crescente o decrescente.

Configurazione delle trasformazioni per il confronto tra stringhe

Le trasformazioni Ordinamento, Aggregazione, Raggruppamento fuzzy e Ricerca fuzzy possono essere personalizzate modificando la modalità di confronto delle stringhe a livello di colonna. Ad esempio, è possibile specificare che un confronto ignori la distinzione tra maiuscole e minuscole, il che significa che i caratteri maiuscoli e minuscoli sono considerati uguali.

Le trasformazioni seguenti utilizzano espressioni che possono includere confronti tra stringhe.

  • La trasformazione Suddivisione condizionale può utilizzare confronti tra stringhe nelle espressioni per determinare a quale output inviare le righe di dati. Per ulteriori informazioni, vedere Trasformazione di suddivisione condizionale.

  • La trasformazione Colonna derivata può utilizzare confronti tra stringhe nelle espressioni per generare nuovi valori di colonna. Per ulteriori informazioni, vedere Trasformazione della colonna derivata.

Anche le variabili, i mapping di variabili e i vincoli di precedenza utilizzano espressioni, che possono includere confronti tra stringhe. Per altre informazioni sulle espressioni, vedere Espressioni di Integration Services (SSIS).

Elaborazione durante il confronto di stringhe

A seconda dei dati e della configurazione della trasformazione, durante il confronto dei dati stringa è possibile eseguire le operazioni di elaborazione seguenti:

  • Conversione dei dati in formato Unicode. Se i dati dell'origine non sono già in formato Unicode, verranno automaticamente convertiti in tale formato prima dell'esecuzione del confronto.

  • Utilizzo delle impostazioni locali per applicare regole specifiche delle impostazioni locali nell'interpretazione di data, ora, numeri decimali e criteri di ordinamento.

  • Applicare opzioni di confronto a livello di colonna per modificare la sensibilità dei confronti.

Conversione di dati stringa in formato 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.

I dati di tipo stringa con il tipo di dati DT_STR vengono convertiti in Unicode utilizzando la pagina codici della colonna. Integration Services supporta le tabelle codici a livello di colonna e ogni colonna può essere convertita usando una tabella codici diversa.

Nella maggior parte dei casi Integration Services è in grado di identificare la tabella codici appropriata basandosi sull'origine dati. In SQL Server, ad esempio, è possibile impostare regole di confronto a livello di database e di colonna. La tabella codici deriva da una collation di SQL Server, che può essere una collation Windows o SQL.

Se Integration Services specifica una tabella codici imprevista oppure se il pacchetto accede a un'origine dati usando un provider che non fornisce informazioni sufficienti per determinare la tabella codici appropriata, è possibile specificare una tabella codici predefinita nell'origine e nella destinazione OLE DB. Le tabelle codici predefinite vengono utilizzate al posto di quelle specificate da Integration Services.

I file non hanno pagine di codice. Invece, i gestori connessioni Flat File e Multiple Flat Files che un pacchetto usa per connettersi ai dati di file includono una proprietà per specificare la tabella codici del file. La tabella codici può essere impostata solo a livello di file, non a livello di colonna.

Impostazione delle impostazioni locali

Integration Services non usa la tabella codici per desumere regole specifiche delle impostazioni locali per ordinare i dati o interpretare i dati di data, ora e decimali. 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. 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. Se l'attività Flusso di dati è in un contenitore, ad esempio il contenitore For Loop, eredita le impostazioni locali dal contenitore.

È inoltre possibile specificare un'impostazione locale per un gestore connessioni file flat e per un gestore connessioni file flat multipli.

Impostazione delle opzioni di confronto

Le impostazioni locali specificano le regole di base per il confronto dei dati stringa, Ad esempio, le impostazioni locali specificano l'ordine di ordinamento di ogni lettera dell'alfabeto. Tali regole possono tuttavia non essere sufficienti per i confronti eseguiti da alcune trasformazioni e Integration 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. Tali opzioni di confronto vengono impostate a livello di colonna. È ad esempio disponibile un'opzione di confronto che consente di ignorare i caratteri senza spaziatura. Questa opzione consente di ignorare segni diacritici come l'accento, affinché i caratteri come "a" e "á" vengano considerati identici ai fini del confronto.

Nella tabella seguente vengono descritte le opzioni di confronto disponibili e uno stile di ordinamento.

Opzione di confronto Descrizione
Ignora maiuscole/minuscole Specifica se nel confronto viene fatta distinzione tra lettere maiuscole e minuscole. Se questa opzione è impostata, il confronto tra stringhe ignora la distinzione tra maiuscole e minuscole. Ad esempio, la stringa "ABC" verrà considerata identica alla stringa "abc".
Ignora il tipo di kana Specifica se nel confronto viene fatta distinzione tra i due tipi di caratteri Kana giapponesi, Hiragana e Katakana. Se questa opzione è impostata, il confronto di stringhe ignora la distinzione tra katakana e hiragana.
Ignora larghezza caratteri 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). Se questa opzione è impostata, nel confronto tra stringhe la rappresentazione a un byte e quella a due byte dello stesso carattere verranno considerate uguali.
Ignora caratteri senza spaziatura Specifica se nel confronto viene fatta distinzione tra i caratteri con spaziatura e quelli con segni diacritici. Se questa opzione è impostata, nel confronto verranno ignorati i segni diacritici. Ad esempio, il carattere "Ã¥" verrà considerato uguale al carattere "a".
Ignora simboli 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. Se questa opzione è impostata, nel confronto verranno ignorati i simboli. Ad esempio, la stringa " New York" verrà considerata identica alla stringa "New York" e la stringa "*ABC" verrà considerata identica alla stringa "ABC"'.
Ordina i segni di punteggiatura come simboli Specifica se nel confronto tutti i segni di punteggiatura, ad eccezione del segno meno e dell'apostrofo, precedono i caratteri alfanumerici. Ad esempio, se questa opzione è impostata la stringa ".ABC" precederà la stringa "ABC".

Le trasformazioni Ordinamento, Aggregazione, Raggruppamento fuzzy e Ricerca fuzzy includono queste opzioni per il confronto dei dati.

Nella finestra Editor avanzato per le trasformazioni Raggruppamento fuzzy e Ricerca fuzzy è visualizzato il flag di confronto FullySensitive . Se si seleziona il flag di confronto FullySensitive vengono applicate tutte le opzioni di confronto.