Я пишу работу SQL, чтобы заменить старую устаревшую обработку. По сути, он читает текстовый файл, выполняет некоторые манипуляции с данными, а затем выполняет оператор обновления. Довольно просто Однако у меня возникла проблема с BULK INSERT, и я не совсем понимаю разрешение, поэтому я хотел опубликовать его здесь.
Заявление BULK INSERT, которое я писал, было следующим:
-- Insert statements for procedure here
BULK INSERT [SomeTableName] FROM '\\FILE_PATH_HERE\test.txt'
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = '\t',
ROWTERMINATOR = '0x0a'--'\r\n'
);
Когда я запустил исходное утверждение с ROWTERMINATOR '\ r \ n', в моей таблице не было данных. Когда я заменил '\ r \ n' на 'OxOa', моя массовая вставка сработала.
Причина, по которой я не уверен, почему это работает, заключается в том, что при просмотре файла в Notepad ++ с помощью View-> Symbols-> Show all символы, я вижу CRLF в конце каждой строки данных. Я думал, что '\ r \ n' был эквивалентом перевода строки каретки (CRLF), но он не работал. Я думал, что 'Oxoa' представляет собой только '\ n', поэтому я немного не уверен, почему смена ROWTERMINATOR с '\ r \ n' на '0x0a' сработала.
Любое понимание будет оценено