Sybase bcp-Fehler
Was ich tun will, ist das kopieren einer Tabelle in eine Datei, kürzen Sie die Tabelle und kopieren Sie die Daten zurück in die Tabelle.
Dafür bin ich mit den folgenden beiden Befehlen:
Out: bcp TABLE out file.csv -S SERVER -U user -P password -r '\n' -t '^|' -c
In: bcp TABLE in file.csv -S SERVER -U user-P password-r '\n' -t '^|' -c -J iso_1 -b 5000
Dies ist die Fehlermeldung die ich bekomme:
CSLIB Message: - L0/O0/S0/N36/1/0:
cs_convert: cslib user api layer: common library error: The result is truncated because the conversion/operation resulted in overflow.
Den interessanten Teil ( für mich zumindest ) ist, dass ich den Fehler nur für die Zeilen mit der ersten Spalte ein UNGERADE Anzahl. Aus den ersten 3 Millionen Zeilen, es schneidet die Hälfte von Ihnen, alle mit der ersten Spalte ( die PK
) eine ungerade Zahl ist.
Ich versucht, mit verschiedenen Optionen, aber keiner scheint zu arbeiten: kein problem mit den charset
soweit ich das beurteilen kann, gibt es keine großen Spalten, so dass Sie abgeschnitten sind, und es ist nicht die carriage return
fehlt.
Jegliche Hilfe würde sehr geschätzt werden.
UPDATE: Nach dem erstellen einer format-Datei gibt es keine Fehler mehr, aber er kopiert nur die Hälfte der Daten wieder in der Tabelle.
UPDATE: habe ich es geschafft, ein format zu erstellen-Datei, die funktioniert und lädt alle Daten, aber ich kann nicht verwenden Sie es auf einem anderen server (es funktioniert in der Testumgebung, die es braucht, um in der Produktion-Umgebung), da heißt es Attempt to read an unknown version of bcp format-file.
? Ich weiß, was das bedeutet, aber gibt es irgendeinen Weg zu finden, die richtigen Werte von der version?
GELÖST: Nach dem Graben wieder in der Datenbank, es scheint, dass das problem war in der Tat Dateninkonsistenz aufgrund der Tatsache, dass die VIEW
in der Produktion verwendet zum kopieren der Tabelle nur kopiert 25 Spalten, aber die Tabelle mit 26 Spalten ( jemand veränderte die Tabelle und ich wusste nicht, und hatte nicht bemerkt, dass es passiert ist ). Feste der View
und jetzt funktioniert es.
InformationsquelleAutor andreih | 2013-08-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da Sie aus/in den gleichen server, ich empfehle, verwenden Sie
bcp
mit der einheimischen Flagge.Zeichen-Modus bekommen wierd, und ich es nur nutzen wenn es erforderlich ist.
negative length prefix found in bcp data file
.Haben Sie andere Probleme mit Ihrer Datenbank? Vielleicht einige Ungereimtheiten? Vielleicht ich sollte haben gefragt, welches problem Sie zu lösen versuchen, indem Sie die bcp out/truncate/bcp?
gibt es keine Probleme. es gibt Hunderte von Millionen, vielleicht Milliarden von Insertionen und ich will, dass nur die relevanten Werte ( die letzten 8-9 Millionen Zeilen, und speichern Sie in einer Datei alles, was weniger relevant ist ). Und ich möchte, um einen automatischen Prozess, der dies tut. Es gibt keine Inkonsistenzen, wie ich die Daten geprüft wurden. Allerdings könnte es Probleme mit der Datenbank oder der Datenbank-server, aber wenn es so ist, muss ich tiefer Graben, um einige Ergebnisse.
oder wenn es einen anderen Weg, um Daten aus einer einzelnen Tabelle und laden Sie es, nachdem die Tabelle gekürzt wird, würde ich erwägen, es als eine Lösung zu meinem problem.
Sie konnte immer kopieren der relevanten Daten an Arbeitstischen, und Sie dann abschneiden. Wahrscheinlich wäre es insgesamt schneller, die Sie gerade benötigen, um genügend Speicherplatz in der Datenbank.
InformationsquelleAutor Michael Gardner