6

書式設定されたテキスト (改行、改行、タブのみ) を含むテキスト ファイル (txt) があります。これにはドイツ語の文字も含まれています。

T-SQL で一括挿入コメントを使用して、テキスト ファイルをデータベース テーブル内の 1 つのフィールドに読み込みたいと考えています。

このコマンドを実行しました:

 CREATE TABLE #MyTestTable (
    MyData NVARCHAR(MAX)
 )

 BULK INSERT [#MyTestTable]
FROM 'D:\MyTextFile.txt'

 SELECT * FROM #MyTestTable

問題は、テキスト ファイルの各行を一時テーブルの新しい行に読み込むことです。ファイル全体 (フォーマットとすべて) を 1 行に読み込みたい。

また、ドイツ語の文字が失われているように見えます。結果ビューでは、印刷できない文字のデフォルトに置き換えられています。

どうすればこれを達成できるのでしょうか?

ありがとう。

4

3 に答える 3

7

ROWTERMINATORパラメータとパラメータを使用できCODEPAGEます。デフォルトの行ターミネータは '\r\n' です。CODEPAGE については、生ファイルのエンコーディングと DB のデフォルトの照合順序を知る必要があります。

BULK INSERT [#MyTestTable]
FROM 'D:\MyTextFile.txt'
WITH (ROWTERMINATOR = '\0',
      CODEPAGE = 'ACP')

http://msdn.microsoft.com/en-us/library/ms188365.aspxも参照してください。

于 2010-03-11T10:27:28.030 に答える
2

これを使って:

FIELDTERMINATOR = '|',
ROWTERMINATOR = '\n'

|列区切り記号はどこにありますか。

于 2010-09-07T15:00:38.043 に答える
0
  • 一括挿入を使用しないでください。1 行に 1 レコードを取るように作られています。コードを書く必要があります。
  • テキスト ファイルからコード内の Unicode (nvarchar) への移行を適切に処理します。一括挿入はおそらく標準のコードページを適用し、文字を失いました.

これは、いくつかのマイナーなプログラミング作業 (1 時間ほどの作業に加えて、その他のテストや実行に必要な時間) を本当に必要とします。

于 2010-03-11T10:21:20.120 に答える