2010-01-05 5 views

Répondre

0

Pourquoi? En outre, je ne suis pas sûr qu'un NVARCHAR (MAX) se qualifie vraiment comme une colonne BLOB.

Si vous voulez le faire dans le cadre d'une tâche de flux de données, sur votre source de données, définissez le mode d'accès aux données à « commande SQL » puis utilisez le texte de commande suivante:

select left(OrganisationProviderID,20) as OrganisationProviderID 
from src 

lien Ensuite, cette à votre composant de destination.

24

Voici la fonction que j'utilise pour convertir BlobColumn en chaîne dans les composants SSIS Script

string BlobColumnToString(BlobColumn blobColumn) 
{ 
    if (blobColumn.IsNull) 
     return string.Empty; 

    var blobLength = Convert.ToInt32(blobColumn.Length); 
    var blobData = blobColumn.GetBlobData(0, blobLength); 
    var stringData = System.Text.Encoding.Unicode.GetString(blobData); 

    return stringData; 
} 
+0

Je suis curieux, est-il un avantage de passer explicitement dans la longueur GetBlobData()? – JasonHorner

+0

@JasonHorner Il n'y a pas de surcharge pour ne pas passer le 'Byte Array length' C'est probablement pourquoi ils l'ont fait de cette façon – user1

+1

Cette solution a fonctionné pour moi quand j'ai changé var stringData = Encoding.Unicode.GetString (blobData); à var stringData = Encoding.Default.GetString (blobData); – Khaneliman

Questions connexes