none
Bulk Import Unicode Daten RRS feed

  • Frage

  • -- Schema der Tabelle

    CREATE TABLE [dbo].[import](  [key] [nvarchar](1) NOT NULL,  [text] [nvarchar](5) NOT NULL )


    Der Bulk Import Befehl:

      BULK INSERT [dbo].[import] FROM 'D:\DATEN' WITH ( FORMATFILE = N'D:\format.ftm' )

    Format Datei:

    13.0
    2
    1       SQLNCHAR            0       2       ""               1     key          Latin1_General_CI_AS
    2       SQLNCHAR            0       10     ";{LF}"            2     text          Latin1_General_CI_AS

    Daten Datei:

    1TeҸst;
    2Abcd ;

    Ich versuche mit oben angegebenem Setup die Daten-Datei mittels BULK INSERT zu laden. Ich habe dabei leider keinen Einfluss auf den Aufbau des Inhalts der Datendatei (kein Seperator z.B.). Anstatt {LF} habe ich es auch schon mit \r, \r\n etc. probiert. Entscheidend ist, dass das Unicode Zeichen beibehalten wird.

    Bisher immer ohne Erfolg. Mit Formdatei erhalte ich folgende Meldung: Datenkonvertierungsfehler (Abschneiden) beim Massenladen für 1-Zeile, 2-Spalte (text).

    Ohne Formdatei: Massenladen: Unerwartetes Dateiende in der Datendatei.

    Der SSIS Bulk Import Schritt erhält die selben Fehlermeldungen.

    Montag, 4. September 2017 20:41

Alle Antworten

  • 2       SQLNCHAR            0       10     ";{LF}" 

    Hallo,

    im Formatfile verwendet man die gleichen Formatierzeichenfolgen wie in C++/.NET, für das Linefeed (LF) ist es das \n; \r ist das für Carriage Return (CR).

    Die Längenangabe erfolgt in Bytes, bei Unicode also 2 Bytes pro Zeichen; passen hier Deine Angaben?


    Olaf Helper

    [ Blog] [ Xing] [ MVP]


    Dienstag, 5. September 2017 05:50
  • 2       SQLNCHAR            0       10     ";{LF}" 

    Hallo,

    im Formatfile verwendet man die gleichen Formatierzeichenfolgen wie in C++/.NET, für das Linefeed (LF) ist es das \n; \r ist das für Carriage Return (CR).

    Die Längenangabe erfolgt in Bytes, bei Unicode also 2 Bytes pro Zeichen; passen hier Deine Angaben?


    Olaf Helper

    [ Blog] [ Xing] [ MVP]


    Guten Tag Olaf,

    vielen Dank zunächst für deine Antwort. \n für den Linefeed habe ich ebenfalls verwendet, jedoch festgestellt, dass automatisch ein Carriage Return angefügt wird. Dies deckt sich jedoch nicht mit dem Format der Datendatei:

    Die doppelten längen decken sich mit dem beschriebenem Spalte [key] ist nvarchar(1) und in der Format Datei mit Länge 2 angegeben. Spalte 2 [text] ist nvarchar(5) und mit Länge 10 angegeben.

    Dienstag, 5. September 2017 07:11