Announcement

Collapse
No announcement yet.

Unerwartetes Dateiende in BCP-Datendatei - was tun?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Unerwartetes Dateiende in BCP-Datendatei - was tun?

    Hallo zusammen!

    Ich exportiere Daten aus meiner MSDE Sp3 unter Win98 SE mit BCP.
    Da bekomme ich keine Fehlermeldung.

    Wenn ich diese Daten nun wieder importieren will, bekomme ich bei drei Tabellen/Dateien die Meldung:

    SQLState = S1000, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]Unerwartetes Dateiende in BCP-Datendatei

    Woher kommt das? Was kann ich dagegen tun?
    Ich muss doch irgendwie die Daten sichern und auch wiederherstellen können und das ganze ohne Enterprise Manager und auch noch dautauglich.

    Gruß
    Sonja

  • #2
    Vielleicht hilft dir das weiter (siehe Block "Wichtig"):
    http://msdn2.microsoft.com/de-de/lib...8(SQL.90).aspx

    ciao,
    Helmut

    Comment


    • #3
      Hallo Helmut!

      Danke für den Tip. Allerdings glaube ich, dass ich damit nichts anfangen kann, da ich nämlich keine Feldlängen angeben muss.
      So exportiere ich:
      bcp ad3.dbo.Aerzte out "C:\BU_20070531\Aerzte.bcp" -N -U sa -P meinpwd >> C:\BU_20070531\backup.log
      Und so wird importiert:
      bcp ad3.dbo.Aerzte in "C:\BU_20070531\Aerzte.bcp" -N -E -U sa -P meinpwd >> C:\BU_20070531\import.log

      Das -N ersetzt ja (laut bcp-Doku) die Angabe der Feldlängen.

      Currency verwende ich generell nicht, das kann also ausgeschlossen werden.
      Außerdem gibt es in zwei der betroffenen Tabellen kein datetime - und damit auch keines mit leerem Zeitanteil.
      In der letzten gibt es ein datetime, wo nur eine Zeit drin steht.

      Irgendwie macht mich das fast noch ratloser als gestern.

      Gruß
      Sonja

      Comment


      • #4
        Hat niemand mehr eine Idee?

        Kann ich der MSDE evtl einfach eine fremde Datenbankdatei unterschieben?
        Sprich: Ich erstelle per Script eine leere Hülle, stoppe den Server, ersetze die Daten und Logdatei und starte den Server wieder.

        Comment


        • #5
          Hallo Sonja,

          na ja, es ist natürlich etwas kompliziert zu sagen wo das Problem liegt, wenn man den Aufbau und den Inhalt der exportierten Log-Dateien nicht kennt. Ich selbst arbeite beim Import von Textdateien ausschließlich mit BULK INSERT und temprären Tabellen (Performance), und zwar so, dass ich zunächst eine komplette Zeile in eine Spalte lade, da es auch bei mir weder feste Satzlängen noch Trennzeichen gibt. Aufgrund von Satzartkennzeichen am Anfang einer jeden Zeile weiß ich allerdings, wie ich die Daten jeweils dann zu interpretieren habe. Bsp:

          select cast(substring(zeile, 10, 7) as money) / 100 as Preis, ...
          from #Import
          where zeile like 'D%'

          Andere Satzarten werden eben entsprechend anders behandelt. So kann man erst einmal relativ schmerzfrei den "Textschrott" importieren und kontinuierlich auf formale und inhaltliche Richtigkeit prüfen. Vielleicht hilft Dir das ja etwas weiter.

          Viel Erfolg
          Gruß
          Olaf

          Comment


          • #6
            Originally posted by Olaf Steffan View Post
            So kann man erst einmal relativ schmerzfrei den "Textschrott" importieren und kontinuierlich auf formale und inhaltliche Richtigkeit prüfen.
            Hallo Olaf!
            Ich habe keinen Schrott in den Dateien, die wurden ja alle beim Einfügen in die letzte Datenbank geprüft, von wo aus ich sie exportiert habe.
            Der "Umweg" über die Textdateien ist ja nicht zwingend, aber ich brauche irgendwas, wie ich meine Datenbanken von A nach B per POST bekomme.

            Das mit den temporären Dateien und so muss ich mir nochmal durch den Kopf gehen lassen, das ist völlig neu für mich.

            Grüsse
            Sonja

            Comment

            Working...
            X