Confronto di dati stringa
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.
A seconda dei dati e della configurazione della trasformazione, durante il confronto dei dati stringa possono essere eseguite 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 della lingua per l'interpretazione del tipo di ordinamento e dei valori di data, ora e decimali.
Applicazione di opzioni di confronto a livello di colonna per definire la distinzione tra maiuscole e minuscole per i confronti.
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 di ignorare maiuscole e minuscole nel confronto, ovvero considerare identici i caratteri maiuscoli e minuscoli.
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 Suddivisione condizionale.
La trasformazione Colonna derivata può utilizzare confronti tra stringhe nelle espressioni per generare nuovi valori di colonna. Per ulteriori informazioni, vedere Trasformazione Colonna derivata.
Anche le variabili, i mapping di variabili e i vincoli di precedenza utilizzano espressioni, che possono includere confronti tra stringhe. Per ulteriori informazioni sulle espressioni, vedere Guida di riferimento alle espressioni in Integration Services.
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, che costituisce la rappresentazione Unicode dei caratteri delle stringhe.
I dati stringa con tipo di dati DT_STR vengono convertiti in formato Unicode utilizzando la tabella codici della colonna. Integration Services supporta tabelle codici a livello di colonna e ogni colonna può essere convertita utilizzando una tabella codici diversa.
Nella maggior parte dei casi Integration Services è in grado di identificare la tabella codici appropriata basandosi sull'origine dei dati. In SQL Server, ad esempio, è possibile impostare regole di confronto a livello di database e di colonna. La tabella codici viene ricavata dalle regole di confronto di SQL Server, che possono essere quelle di Windows o le regole di confronto SQL. Per ulteriori informazioni, vedere Utilizzo delle regole di confronto.
Se Integration Services specifica una tabella codici imprevista oppure il pacchetto accede a un'origine dei dati utilizzando un provider che non fornisce informazioni sufficienti per determinare la tabella codici appropriata, sarà 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 tabelle codici, ma le gestioni connessioni file flat e per file flat multipli utilizzate dai pacchetti per connettersi ai file includono una proprietà che consente di specificare le tabelle codici dei file. La tabella codici può essere impostata solo a livello di file, non a livello di colonna.
Impostazione delle impostazioni locali
Integration Services non utilizza 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. 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 si trova in un contenitore, ad esempio Ciclo For, erediterà le impostazioni locali dal contenitore.
È inoltre possibile specificare impostazioni locali per le gestioni connessioni file flat e per file flat multipli.
Impostazione delle opzioni di confronto
Le impostazioni locali specificano le regole di base per il confronto dei dati stringa, ad esempio la posizione di ogni lettera nell'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 quale l'accento, di modo che 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, nel confronto tra stringhe verrà ignorata la combinazione di maiuscole e minuscole. Ad esempio, la stringa "ABC" verrà considerata identica alla stringa "abc". |
Ignora Katakana/Hiragana |
Specifica se nel confronto viene fatta distinzione tra i due tipi di caratteri Kana giapponesi, Hiragana e Katakana. Se questa opzione è impostata, nel confronto tra stringhe verrà ignorata 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, verranno applicate tutte le opzioni di confronto.
|