Kann SQL Server bcp in einer Datei mit Unix-Zeilenenden?
Ich versuche, verwenden Sie die SQL Server-Hilfsprogramm bcp zum importieren einer text-Datei aus einem samba-share. bcp ist erstickt an den Unix-Zeilenenden. Ich bin sicher, ich könnte hinzufügen, ein Zwischenschritt, entweder auf Unix oder Windows, zum ändern die Zeilenenden Windows-Stil. Aber ich würde es vorziehen, um die Dateien zu importieren von Unix-Systemen ohne änderung.
Jemand wissen, ob es eine Möglichkeit zu sagen, SQL Server bcp zu suchen, Unix-Zeilenenden?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie eine format-Datei mit bcp und geben Sie der terminator "\n". Die interaktive Befehlszeile wird immer append \ - r, wo Sie eine Formatdatei verwenden genau das, was Sie angeben. Referenz http://www.eggheadcafe.com/software/aspnet/32239836/bcp-out-with-char10-as-row-terminator.aspx.
Erstellen einer Formatdatei erklärt sich Recht gut in der BOL aber Kommentar/aktualisieren Sie Ihre original-post, wenn Sie Hilfe benötigen.
Die einfache Antwort ist die Verwendung von hex, wie erwähnt wurde, in einer der Kommentare, als Zeilenabschlusszeichen:
haben Sie versucht, die ROWTERMINATOR = '\n'?
Ich glaube nicht, dass Sie können dies tun, aus dem bcp-Befehlszeile. Ich denke aber, dass Sie die folgende SQL-version funktioniert.
-r 0xa
Wenn Sie nicht haben eine Menge Zeit, um zu lernen bcp im detail, überprüfen Sie heraus dieses:
http://msdn.microsoft.com/en-us/library/ms190759.aspx
Wird es geben Ihnen einen einfachen Beispiel erklären was interaktive Eingabeaufforderungen bedeuten, option-format zu speichern, sobald Sie fertig sind (wenn Sie wiederholt dazu) etc. etc.
Wenn Ihre Daten ist groß und/oder haben mehrere filds Sie möchten, können Sie eine Tabelle erst dann tun, ein wenig trial export (bcp wird eine einfache select-als erste arg) und noch pick-Formate interaktiv, Spalte um Spalte. Sie können Graben, in gespeichert fmt-Datei, zweite, wenn Sie etwas extra Grund.
Ja, das ist zum Verrücktwerden. Mein Verständnis ist, dass SQL Server bcp IMMER fügt ein \r vor, was line terminator, die Sie erwarten würden, um verwendet werden. Also, wenn Sie nicht verwenden-r, die Sie erwarten würden, es zu nutzen \n nur. Aber es ist nicht...es dummerweise fügt \r, so dass Sie es verwenden können, \r\n". Wenn Sie-r \r\n es dann immer noch nicht funktionieren; ich vermute, weil es jetzt will, \r\n\r Zeile endet. Das ist alles die Arbeit von einigen Idioten Codierung für die Windows-Welt versuchen, machen das Leben einfacher für Anfänger und enden die Dinge fast unmöglich, für alle anderen. Erlebt habe ich dieses problem beim übertragen von Dateien von Sybase SQL server und die Lösung war, geben Sie-r \r\n in der bcp-von Sybase (das funktioniert genau so, wie Sie es Fragen an!) und -r \n (oder einfach nicht mit -r) für den SQL Server bcp-in.