it-swarm.com.de

Die SSIS-Spalte kann nicht zwischen Unicode- und Nicht-Unicode-Zeichenfolgendatentypen konvertieren

Ich übertrage eine Tabelle von SQL Server auf PDA Server. Das ist mein Datenfluss:

ADO NET-Quelle ---> OLE DB-Ziel

Alle Spalten in meiner Quelltabelle sind Varchars. Als ich meine Zieltabelle erstellte, stellte ich sicher, dass sie dieselben Datentypen hatten. Beide Tabellen haben also varchar-Datentypen für alle Spalten.

Es wird jedoch weiterhin der Fehler angezeigt: Die Spalte "col1" kann nicht zwischen Unicode- und Nicht-Unicode-Zeichenfolgendatentypen konvertieren. Das Seltsame ist, dass wenn ich mein OLE DB-Ziel durch ein ADO Net-Ziel ersetze, es zu funktionieren scheint, ich jedoch OLE DB verwenden möchte, damit Ich kann Dinge wie Zeilen pro Stapel angeben.

Kann jemand helfen?

2
tee

Doppelklicken Sie auf die Linie zwischen Quelle und Ziel und wählen Sie die Registerkarte Metadaten. Daraufhin werden alle Ihre Spalten und die von SSIS abgeleiteten Datentypen aufgelistet.

Ich würde das mit Ihrer Quelle vergleichen und zu 100% sicherstellen, dass sie übereinstimmen.

Was passieren kann, ist, dass SSIS beim ersten Erstellen Ihres Datenflusses die Metadaten basierend auf den Typen zu diesem Zeitpunkt festlegt. col1 Wird als nvarchar interpretiert, daher wird es als DT_WSTR Von einiger Länge festgelegt.

Die Zeit vergeht und Sie aktualisieren die Abfrage und die Quelle ist jetzt varchar, heißt aber immer noch col1. Ein varchar passt immer in ein nvarchar, sodass sich die Form dieser Spalte nicht "geändert" hat, sodass SSIS seine Interna nicht wiederholen muss.

Wenn SSIS an alten Metadaten festhält, ist mein Klickpfad zu

  1. Kopieren Sie die vorhandene Abfrage
  2. Ändere meine Anfrage in SELECT 1 as TotallyNewAndUniqueColumn
  3. SSIS meldet dann, dass alle meine Metadaten aus dem Ruder gelaufen sind, und möchte sie automatisch fixieren, und ich klicke auf Ja
  4. Fügen Sie die ursprüngliche Abfrage erneut ein und siehe da, die aktuellen Metadaten werden erfasst.
3
billinkc