Удалить символы цитирования из файла при массовой вставке данных в таблицу - PullRequest
1 голос
/ 05 апреля 2019

Это Users таблица

CREATE TABLE Users
(
    Id INT PRIMARY KEY IDENTITY(0,1),
    Name NVARCHAR(20) NOT NULL,
    Surname NVARCHAR(25) NOT NULL,
    Email NVARCHAR(30), 
    Facebook NVARCHAR(30),

    CHECK(Email IS NOT NULL OR Facebook IS NOT NULL)
);

Это BULK INSERT

BULK INSERT Users
FROM 'C:\Users\SAMIR\Downloads\Telegram Desktop\users.txt'
WITH (
      FIELDTERMINATOR = ',',
      ROWTERMINATOR = '\n',
      --FIRSTROW = 0,
      --UTF-8
      CODEPAGE = '65001'
);

Итак, это Users.txt данные файла:

`1, N'Alex', N'Mituchin', N'qwe@gmail.com', NULL`

Когда я загружаю данные из файла, он устанавливает Username в значения, подобные N'Alex'.Но я хочу, чтобы данные были просто как Alex.Как я могу решить эту проблему?

Ответы [ 2 ]

1 голос
/ 05 апреля 2019

Я рекомендую загружать данные в промежуточную таблицу, где значения являются строками.

Затем вы можете использовать простой запрос для получения окончательных результатов.В этом случае вы можете сделать:

select (case when name like 'N''%'''
             then substring(name, 2, len(name) - 3)
             else name
        end) as name
from staging
0 голосов
/ 05 апреля 2019

Есть лучший вариант для этого.Если разделители строк и индикаторы Unicode согласованы (они присутствуют во всех строках), вам следует использовать файл формата, в котором вы можете указать разделители для каждого столбца.Это позволит вам установить , N' в качестве разделителя между первым и вторым столбцами, ', N' в качестве разделителя для второго и третьего столбцов и т. Д.

...