Frage

Ich lade einige Daten von DB2 zu SQL2005. Die Tabelle enthält ein Textfeld, das 2000 Zeichen lang in DB2 ist, sondern als varchar (2000) in SQL einrichten.

Wenn ich meinen Einsatz in Abfrage-Browser ausgeführt verarbeitet sich in Ordnung und die Daten korrekt kopiert, aber wenn die gleiche Aussage läuft in meiner gespeicherten Prozedur die Daten für dieses Feld nur falsch kopiert und als eine Reihe von seltsamen Zeichen gezeigt.

Das Feld gelegentlich Steuerzeichen enthält, kann jedoch das Problem auch auftritt, wenn es nicht.

Gibt es eine Einstellung muss ich meine gespeicherten Prozedur anzuwenden, um den Einsatz zu bekommen richtig zu arbeiten?

Oder muss ich eine Besetzung verwenden oder auf die Daten, um zu konvertieren, um es richtig erscheinen, zu erhalten.

Danke.

Update: Vielen Dank für Ihre Anregungen. Es scheint nun, dass das Problem durch die Software verursacht wurde, die wir verwenden, um den verknüpften Server die DB2-Datenbank erstellen enthält. Dies könnte nicht ein Feld 2000 Zeichen lange behandeln, wenn über eine gespeicherte Prozedur ausführen, konnte aber bei der Ausführung interaktiv.

ich, um das Problem letztlich bekam durch Spleißen das Feld in 10 200 Zeichen lange Felder für den Upload und dann wieder schloss sich ihnen wieder, wenn sie in der SQL-Datenbank waren.

War es hilfreich?

Lösung 3

Dieses Problem wurde durch die 3rd-Party-Software verursacht, die wir verwenden, um den verknüpften Server zur DB2-Datenbank zu erstellen. Dies könnte nicht ein Feld 2000 Zeichen lange behandeln, wenn über eine gespeicherte Prozedur ausführen, konnte aber bei der Ausführung interaktiv.

ich, um das Problem letztlich bekam durch Spleißen das Feld in 10 200 Zeichen lange Felder für den Upload und dann wieder schloss sich ihnen wieder, wenn sie in der SQL-Datenbank waren.

Andere Tipps

Es klingt wie die Daten von db2 kommen in einem anderen Zeichensatz ist. Sie sollten sicherstellen, dass es nicht EBCDIC oder so ähnlich ist.

Versuchen Sie auch, Ihre gespeicherte Prozedur aus dem SQL Server Management Studio (Query Browser) aufrufen, um zu sehen, ob es überhaupt funktioniert.

Vielleicht möchten Sie Ihre varchar (2000) zu einem nvarchars ändern (2000) (in der gespeicherten Prozedur sowie den Tisch - ich nehme es als Parameter vorhanden ist). Dies würde es ihnen ermöglichen, zwei Byte-Zeichen zu halten. Es wird auf der DB2-Konfiguration abhängen, aber es kann sein, dass es UTF-16 (oder ähnlich) und nicht UTF-8.

hat den Export
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top