2016-11-29 2 views
1

Ich schreibe eine Reihe von Daten in einer SQL Server 2008-Tabelle in SSIS (Visual Studio 2008). Wenn ich meine Datei einem OLE DB-Ziel zuordnen, erhalte ich einen Abbruchfehler, weil die OLE DB-Zielspalten die Länge 20 haben. Dies geschieht für jede Spalte, aber ich zeige nur ein Beispiel für eine Spalte darunter.Falsche externe Spaltenlänge in SSIS OLE DB Ziel

Dies ist die Spalte, wie in der SQL-Tabelle Definition:

Column_name  Type  Length 
FLAGVOEMPLOYEE nvarchar 40 

Dies ist die Metadaten (im Datenpfad-Editor geprüft) der Säule I an das Ziel als Eingabe am vorbei:

Name   Data Type Length 
FlagVoEmployee DT_WSTR  40 

Dies ist die Spalteneigenschaften in Erweiterter Editor> Input und Output-Eigenschaften> OLE DB-Zieleingabe> Externe Spalten:

Name   DataType     Length 
FLAGVOEMPLOYEE Unicode string [DT_WSTR] 20 

Ich habe versucht:

  • manuell die Länge Attribut zu ändern, aber es wird zu 20 automatisch zurück
  • Löschen Sie den Pfad wiederherstellen und erneut
  • Löschen der OLE DB-Ziel und die Schaffung es wieder zu schaffen
  • Ändern von Datenzugriffsmodus in den normalen oder schnellen Last
  • die Spalte unmapping und Remapping es

Ich bin verloren, wie ich weiß nicht, wie jede andere Eigenschaft zu ändern, die mir das Abschneiden vermeiden helfen könnte

Antwort

1

Sie den SSIS-Abschnitt erstellt haben und dann die Größe der Spalte in der SQL-Tabelle ändern, nachdem ? Wenn dies der Fall ist, können Sie möglicherweise die OLE DB-Quelle löschen und neu erstellen, um die Metadaten zurückzusetzen.

Ich fand auch diesen Link: http://www.sqlservercentral.com/Forums/Topic927634-364-1.aspx

Wenn mit SSIS und Quell- oder Ziel Metadaten arbeiten ändert SSIS nicht zurückgesetzt die Metadaten es die geänderte Spalte löscht und fügt einen neuen am Ende der Liste. Dies führt zu unordentlichen Paketen, nachdem einige Änderungen aufgetreten sind.

Um die Metadaten für Datenquellen zurückzusetzen, ändern Sie die Quelle in eine Tabelle oder Abfrage, die keine übereinstimmenden Spaltennamen aufweist, und zeigen Sie dann Spalten in der Datenquelle an. Dadurch werden die Metadaten gelöscht und neu erstellt. Wechseln Sie dann die Quelle zurück zu der geänderten Quelle, für die Sie versuchen, die Metadaten zu aktualisieren, und zeigen Sie die Spalten erneut an. Dadurch werden die Metadaten für die Quelle vollständig neu erstellt.

Bei Zielen ändern Sie das Ziel in ein Ziel ohne übereinstimmende Spaltennamen und zeigen Sie dann zugeordnete Spalten an. Dadurch werden die Metadaten gelöscht und neu erstellt. Wechseln Sie dann zurück zum neuen oder geänderten Ziel und zeigen Sie zugeordnete Spalten an. Dies setzt die Metadaten effektiv zurück.

+0

Hallo, danke für die Antwort, aber nein, ich habe die SQL-Tabelle nicht geändert. Die Metadaten des Eingabedatenflusses scheinen jedoch korrekt zu sein. –

+0

Haben Sie die Quelle gelöscht und neu erstellt, und sie hatte keine Auswirkungen? Verwenden Sie eine SQL-Anweisung in der Quelle oder nur eine aus der Dropdownliste ausgewählte Tabelle? –

+0

Ich benutze sowohl eine Tabelle als auch eine SQL-Anweisung, da ich später bei ihnen bin. Ich habe nicht versucht, sie neu zu erschaffen. Schlägst du vor, dies zu tun, obwohl die Daten, die ich in das OLE DB-Ziel eingehe, korrekt sind? –

0

es zu zwingen, eine 40 Zeichenspalt zur Verfügung zu stellen, verwenden Sie die Spalte Transformation abgeleitet und ändern Sie Ihren Ausdruck dieses:

(DT_WSTR, 40) [FLAGVOEMPLOYEE]

Ich hoffe, das hilft und wenn Es hat meine Antwort markiert, damit auch andere davon profitieren können!

Verwandte Themen