Ich muss einige Daten mithilfe von SQL Server 2000 BCP-Dienstprogramm exportieren. Manchmal enthalten meine Daten Zeichen wie \ t und \ n, die ich als Spalten- und Zeilenabschluss verwenden muss. Wie bekomme ich BCP, um Zeichen zu entkommen, die es als Terminatoren verwendet, während es die Daten ausgibt, damit ich die Daten tatsächlich in ein anderes Programm importieren kann?Get bcp.exe, um Terminatoren zu entkommen
Zum Beispiel ist eine meiner Spalten Textdaten und enthält Tabulatoren und Zeilenumbrüche. BCP exportiert sie nur so, wie sie ist, und das Programm, mit dem ich sie zu importieren versuche, wird verwirrt, weil die Daten in der Mitte einer Zeile enden und/oder eine Zeile ohne ersichtlichen Grund zusätzliche Spalten enthält.
wie ein sehr, Das scheint sehr, sehr Grundfunktion in einem Datenexporteur enthalten, aber keiner von the command-line options scheint es zu erwähnen. (Warum es nicht nur der Standard ist, ist jenseits von mir.) Verpasse ich etwas?
Es macht tatsächlich Sinn - zum Beispiel, mit COPY FROM in PostgreSQL, wird es die Sequenz '\ n' zurück in eine tatsächliche Newline in einer Textspalte machen. Und leider kann ich in PostgreSQL kein Zeilentrennzeichen angeben. – Kev
Auch, obwohl verschiedene Terminatoren eine Problemumgehung ist, dauert es eine * wirklich * lange Zeit, die Post-Abfrage-Ersetzungen durchzuführen. Es wäre viel besser, wenn BCP einfach Textspalten entgehen könnte. – Kev
Weder osql noch sqlcmd unterstützen dies. Was wäre, wenn Sie beispielsweise ein Feld mit dem Escape-Zeichen hätten? Und wenn Sie die PostgreSQL Informationen lesen, erwähnt es über zweifelhafte Flucht ... SQL Server ist absolut vorhersehbar, nein? – gbn