Get bcp.exe um Terminatoren zu entkommen

9

Ich muss einige Daten mithilfe des BCP-Dienstprogramms von SQL Server 2000 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?

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 importieren möchte, wird verwirrt, weil die Daten in der Mitte einer Zeile enden und / oder eine Zeile ohne ersichtlichen Grund zusätzliche Spalten enthält.

Dies scheint eine sehr, sehr sehr Grundfunktion zu sein, die in einem Datenexporteur enthalten sein soll, aber keiner von die Befehlszeilenoptionen scheinen es zu erwähnen. (Warum es nicht einfach der Standard ist, ist jenseits von mir.) Verpasse ich etwas?

    
Kev 29.12.2009, 18:24
quelle

3 Antworten

5

Ich stimme Ihnen vollkommen zu: Flucht sollte eine Option sein. "Sie können keine Daten mit Tabs oder Zeilenumbrüchen haben" ist das Dümmste, was ich jemals gehört habe.

Hier ist eine mögliche Lösung:

  1. Verwenden Sie die Option -r, um einen anderen Zeilenabschluss festzulegen. Etwas wahrscheinlich nicht in Ihren Daten vorhanden (#! # $ #% #). Ich denke du kannst mehrere
    benutzen Zeichen, so dass es einfacher macht.
  2. Öffnen Sie Ihre Datendatei in sed, einem fähigen Texteditor, oder schreiben Sie ein Skript - und ersetzen Sie ein beliebiges \ n und \ t Zeichen durch ihre Escape-Entsprechungen (\\ n und \\ t). Ersetzen Sie schließlich Ihren Zeilenabschluss mit \ n und Sie sollten gut sein.
  3. Ich denke, das gleiche sollte für die Verwendung von -t für Feld-Terminatoren gelten

Werfen Sie einen Blick auf diesen Artikel für weitere Informationen .

    
MikeMurko 26.05.2013 16:10
quelle
1

Sie können ein Trennzeichen verwenden, das aus mehreren Zeichen besteht, wenn Sie sie in doppelte Anführungszeichen setzen:

bcp MY_TABLE out C:\MY_FILE.txt -S SERVER_IP -d DB_NAME -U MY_USER -P MY_PASSWORD -w -t "&#)^@" -r ">~+!"

Gefunden die Lösung hier .

    
Cosmin 23.09.2014 11:05
quelle
-1

Ich habe das gleiche Problem und suchte lange nach einer Lösung. Ich habe dieses von einem BCP-Master gefunden und es klingt vernünftig. Vielleicht möchten Sie es auch versuchen.

Mögliche Lösung: Ссылка

Dateidetails formatieren & amp; Design: Ссылка

Generell kann ich diese Links vorschlagen, um Sie über BCP-Probleme und -Lösungen zu informieren: Ссылка

Mit freundlichen Grüßen

    
Blama 15.10.2010 10:22
quelle