Je transfère une table de SQL Server vers PDA Server. Voici mon flux de données:
ADO NET Source ---> OLE DB Destination
Toutes les colonnes de ma table source sont des varchars et donc lorsque j'ai créé ma table de destination, je me suis assuré qu'elles avaient les mêmes types de données. Les deux tables ont donc des types de données varchar pour toutes les colonnes.
Cependant, je reçois toujours l'erreur: la colonne "col1" ne peut pas convertir entre les types de données de chaîne unicode et non-unicode. La chose étrange est que si je remplace ma OLE DB Destination par une ADO Net Destination, cela semble fonctionner cependant, je veux utiliser OLE DB afin que je puisse spécifier des choses telles que des lignes par lot.
Quelqu'un peut-il aider?
Double-cliquez sur la ligne entre la source et la destination et sélectionnez l'onglet Métadonnées. Cela répertoriera toutes vos colonnes et les types de données que SSIS a déduits.
Je comparerais cela à votre source et m'assurerais à 100% qu'ils s'alignent.
Ce qui peut arriver, c'est que la première fois que vous avez créé votre flux de données, SSIS définira les métadonnées en fonction des types à ce stade. col1
est interprété comme étant nvarchar, il sera donc défini comme DT_WSTR
d'une certaine longueur.
Le temps passe et vous mettez à jour la requête et la source est maintenant varchar, mais toujours appelée col1
. Un varchar s'insérera toujours dans un nvarchar donc la forme de cette colonne n'a pas "changé" donc SSIS n'a pas besoin de refaire ses internes.
S'il est vrai que SSIS s'accroche aux anciennes métadonnées, mon chemin de clic est de
SELECT 1 as TotallyNewAndUniqueColumn