Condividi tramite


Confronto tra dati stringa

I confronti tra stringhe sono una parte importante di molte delle trasformazioni eseguite da Integration Services e i confronti tra stringhe vengono usati anche nella valutazione delle espressioni nelle variabili e nelle espressioni di proprietà. Ad esempio, la trasformazione Ordinamento confronta i valori di un set di dati per ordinare i dati in ordine crescente o decrescente.

Configurazione delle trasformazioni per i confronti tra stringhe

Le trasformazioni Sort, Aggregate, Fuzzy Grouping e Fuzzy Lookup possono essere personalizzate per modificare la modalità di confronto delle stringhe a livello di colonna. Ad esempio, è possibile specificare che un confronto ignora la distinzione tra maiuscole e minuscole, ovvero i caratteri maiuscoli e minuscoli vengono considerati come lo stesso carattere.

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

  • La trasformazione Suddivisione condizionale può usare confronti tra stringhe nelle espressioni per determinare l'output a cui inviare la riga di dati. Per altre informazioni, vedere Trasformazione Suddivisione condizionale.

  • La trasformazione Colonna derivata può usare confronti di stringhe nelle espressioni per generare nuovi valori di colonna. Per altre informazioni, vedere Trasformazione Colonna derivata.

Le variabili, i mapping delle variabili e i vincoli di precedenza usano anche espressioni, che possono includere confronti tra stringhe. Per altre informazioni sulle espressioni, vedere Espressioni di Integration Services (SSIS).

Elaborazione durante il confronto tra stringhe

A seconda dei dati e della configurazione della trasformazione, l'elaborazione seguente può verificarsi durante il confronto dei dati stringa:

  • Conversione dei dati in Unicode. Se i dati di origine non sono già Unicode, i dati vengono convertiti automaticamente in Unicode prima che si verifichi il confronto.

  • Uso del locale per applicare regole specifiche per interpretare data, ora, decimali e ordinamento.

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

Conversione di dati stringa in Unicode

A seconda delle operazioni eseguite dalla trasformazione e della configurazione della trasformazione, i dati stringa possono essere convertiti nel tipo di dati DT_WSTR, ovvero una rappresentazione Unicode dei caratteri stringa.

I dati stringa con il tipo di dati DT_STR vengono convertiti in Unicode usando la tabella 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 può identificare la tabella codici corretta dall'origine dati. In SQL Server, ad esempio, è possibile impostare regole di confronto a livello di database e colonna. La pagina codice è derivata da un'ordinamento di SQL Server, che può essere un'ordinamento di Windows o un'ordinamento SQL.

Se Integration Services fornisce una tabella codici imprevista o se il pacchetto accede a un'origine dati utilizzando un provider che non fornisce informazioni sufficienti per determinare la tabella codici corretta, è possibile specificare una tabella codici predefinita nell'origine OLE DB e nella destinazione OLE DB. Le tabelle codici predefinite vengono usate invece delle tabelle codici fornite da Integration Services.

I file non dispongono di pagine di codice. Al contrario, i gestori delle connessioni File Flat e Multiple Flat Files utilizzati da un pacchetto per connettersi ai dati dei file includono una proprietà per specificare la pagina codice del file. La tabella codici può essere impostata solo a livello di file, non a livello di colonna.

Impostazione del parametro locale

Integration Services non usa la pagina di codice per dedurre regole specifiche del locale per l'ordinamento dei dati o l'interpretazione di dati relativi a date, orari e valori decimali. La trasformazione legge invece le impostazioni locali impostate dalla proprietà LocaleId nel componente flusso di dati, attività Flusso di dati, contenitore o pacchetto. Per impostazione predefinita, le impostazioni locali di una trasformazione vengono ereditate dall'attività Flusso di dati, che a sua volta eredita dal pacchetto. Se l'attività Flusso di dati si trova in un contenitore, ad esempio il contenitore Ciclo For, eredita le impostazioni locali dal contenitore.

È anche possibile specificare un'impostazione locale per un manager di connessione file flat e un manager di connessione a più file flat.

Impostazione delle opzioni di confronto

Le impostazioni locali forniscono le regole di base per il confronto dei dati stringa. Ad esempio, le impostazioni locali specificano la posizione di ordinamento di ogni lettera nell'alfabeto. Tuttavia, queste regole potrebbero non essere sufficienti per i confronti eseguiti da alcune trasformazioni e Integration Services supporta un set di opzioni di confronto avanzate che vanno oltre le regole di confronto di impostazioni locali. Queste opzioni di confronto vengono impostate a livello di colonna. Ad esempio, una delle opzioni di confronto consente di ignorare i caratteri non in formatopacing. L'effetto di questa opzione consiste nell'ignorare i segni diacritici, ad esempio l'accento, che rende "a" e "å" identici a scopo di confronto.

Nella tabella seguente vengono descritte le opzioni di confronto 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".
Ignorare il tipo kana 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 la larghezza dei 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.
Ignorare i 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, "å" è uguale a "a".
Ignora simboli Specifica se il confronto distingue tra caratteri di lettera e simboli, ad esempio spazi vuoti, punteggiatura, simboli di valuta e simboli matematici. Se questa opzione è impostata, il confronto tra stringhe ignora i simboli. Ad esempio, " New York" diventa uguale a "New York" e "*ABC" è uguale a "ABC"'.
Organizzare la punteggiatura trattandoli come simboli Specifica se il confronto ordina tutti i simboli di punteggiatura, ad eccezione del trattino e dell'apostrofo, prima dei caratteri alfanumerici. Ad esempio, se questa opzione è impostata, ". ABC" ordina prima di "ABC".

Le trasformazioni Sort, Aggregate, Fuzzy Grouping e Fuzzy Lookup includono queste opzioni per il confronto dei dati.

L'indicatore di confronto FullySensitive viene visualizzato nella finestra di dialogo Editor avanzato per le trasformazioni di Raggruppamento fuzzy e Ricerca fuzzy. Se si seleziona il flag di confronto FullySensitive , tutte le opzioni di confronto vengono applicate.

Vedere anche

Tipi di dati di Integration Services
Analisi veloce
Analisi standard