0


0

一括挿入のフィールド/行ターミネータの16進値

SQL Server 2005 Expressを実行しています。 そして、16進値0x001を使用するフィールド/行ターミネータを使用して、データファイルの一括挿入/インポートを試みています。 一括挿入コマンドでどのように表す必要がありますか?

私は何かがあります:

bulk insert xxx.dbo.[yyy]
from 'D:\zzz\zzz.dat'
with (
         CODEPAGE='RAW',
         FIELDTERMINATOR = '=|=',
         ROWTERMINATOR = '=|=\001\n',
         KEEPNULLS
);

これは

Msg 4863, Level 16, State 1, Line 7
Bulk load data conversion error (truncation) for row 1, column 3 (code).

列3は最後の列です。 また、文字列から16進値を削除すると、SQL Serverに適切に読み込まれますが、ターミネーターで16進値を表現/使用できるかどうかを知りたいです。

2 Answer


0


ROWTERMINATOR = '=|=01\n'

これは、ファイルが実際の文字列「01」でこのように見えることを前提としています

foo=/=bar=/=bob=/=01

それ以外の場合、リテラル文字(1)の場合、次のことはできません。


0


いいえ、ちがいます。 実際の16進値0x001です。 答えは、16進数から文字列へのコンバーターを使用してリテラル文字を取得し、ROWTERMINATORへの文字列でリテラルな外観の文字を使用することです。