DWH-ETL-OLAP
July 12, 2019
SQL Server: Импорт CSV созданный в PostgreSQL
Пытаюсь сейчас импортнуть csv на гигабайт, выгруженный из postgres на linux.
Как выяснил, формат файла такой, разделитель строк - запятая, перевод строки - LF (новая строка), т.е. \n, Тогда как в винде \r\n. И SQL Server в инструкции BULK INSERT автоматом добавляет \r, если указать ему только \n.
Т.е. вот так не сработает
BULK INSERT [dbo].[visits_all_lc_stg] FROM 'D:\LandZone\visits_all_lc.csv' WITH (TABLOCK, FORMAT='CSV', ROWTERMINATOR = '\n');
Надо вот так:
BULK INSERT [dbo].[visits_all_lc_stg] FROM 'D:\LandZone\visits_all_lc.csv' WITH (TABLOCK, FORMAT='CSV', ROWTERMINATOR = '0x0a');
Примечание: 0x0A является \n символом новой строки. 0x0D в \r символом возврата.