Je veux obtenir l'id de la table cible par lookup avec la colonne NVarChar(Max) dans la table cible et la colonne NVarChar(20) dans la table source. Mais il y a une erreur Cannot map the lookup column, 'Column1', because the column data type is a binary large object block (BLOB).
Réponses
Trop de publicités?Dans votre transformation Lookup, vous devez transformer le blob (nvarchar(max)) en un type non-blob. Dans ce cas, je suppose que vous devez le convertir en nvarchar(20).
Vous devrez écrire une requête dans la transformation lookup et ne pas simplement sélectionner la table.
En supposant que la table de consultation ressemble à
LookupTable
--------------
Column0 int
Column1 nvarchar(max)
Column2 nvarchar(500)
Votre requête ressemblerait à
SELECT
L.Column0
, CAST(L.Column1 AS nvarchar(20)) AS Column1
, L.Column2
FROM
dbo.LookupTable L
Vous devriez maintenant être en mesure d'effectuer une recherche sur cette colonne.
Vous ne pouvez pas :
La jointure peut être une jointure composite, ce qui signifie que vous pouvez joindre plusieurs colonnes dans l'entrée de la transformation aux colonnes dans l'ensemble de ensemble de données de référence. La transformation supporte les colonnes jointes avec n'importe quel type de données, sauf DT_R4, DT_R8, DT_TEXT, DT_NTEXT, ou DT_IMAGE.
Êtes-vous sûr d'utiliser le composant correctement ? En général, vous effectuez une recherche par ID pour obtenir le texte. Pouvez-vous donner plus de détails ?