Фабрика данных Azure сопоставление двух столбцов в один столбец

Может ли кто-нибудь помочь мне решить ошибку, возникающую при объединении двух столбцов, то есть first name и last name из моего текстового файла, и объединении двух столбцов в один столбец имени в моей базе данных SQL Azure как sink в Фабрика данных Azure, и еще один вопрос заключается в том, что я хочу выбрать первую букву пола столбца, равную M или F для мужской и женский соответственно, из исходного текстового файла и изменить ее на единицу. буква M или F в моем столбце пола в конвейере фабрики данных Azure. введите здесь описание изображения ?

  • Обновление 1

Имя моей таблицы - [dbo]. [Contact], и после применения этой процедуры я получаю эту ошибку, а в именах моих столбцов в текстовом файле есть пробелы между ними, например Имя и Фамилия, создает ли это тоже проблему?

введите здесь описание изображения


person sxb1649    schedule 15.07.2018    source источник
comment
Пожалуйста, обратитесь к моему ответу об обновлении и следуйте моим инструкциям по настройке хранимой процедуры в вашей базе данных. Если у вас возникнут какие-либо вопросы, сообщите мне. Просто добавьте комментарий к последнему моему ответу.   -  person Jay Gong    schedule 16.07.2018
comment
Вы можете проголосовать и отметить ответ для справки других.   -  person Jay Gong    schedule 20.07.2018
comment
Я уже отметил, что мне нужно больше репутации, чтобы подумать о голосовании, я голосовал за вас и спасибо за вашу помощь.   -  person sxb1649    schedule 20.07.2018


Ответы (1)


На основе документа: Сопоставление схемы при копировании, объединение столбцов поддерживается сопоставлением схемы.

В качестве обходного пути я предлагаю настроить sql-сервер stored procedure в вашем приемник сервера sql. Он может объединять копируемые данные с существующими данными.

Следуйте инструкциям из этого документ:

Шаг 1. Настройте выходной набор данных:

введите здесь описание изображения

Шаг 2: Настройте раздел Sink в действии копирования следующим образом:

введите здесь описание изображения

Шаг 3. В своей базе данных определите тип таблицы с тем же именем, что и sqlWriterTableType. Обратите внимание, что схема типа таблицы должна быть такой же, как схема, возвращаемая вашими входными данными.

CREATE TYPE [dbo].[MarketingType] AS TABLE(
    [FirstName] [varchar](256) NOT NULL,
    [LastName] [varchar](256) NOT NULL,
    [Gender] [varchar](256) NOT NULL
)

Шаг 4. В своей базе данных определите хранимую процедуру с тем же именем, что и SqlWriterStoredProcedureName. Он обрабатывает входные данные из указанного источника и объединяет их с выходной таблицей. Обратите внимание, что имя параметра хранимой процедуры должно быть таким же, как «tableName», определенное в наборе данных.

Create PROCEDURE spOverwriteMarketing @Marketing [dbo].[MarketingType] READONLY
AS
BEGIN
  MERGE [dbo].[jay] AS target
  USING @Marketing AS source
  ON (1=1)
  WHEN NOT MATCHED THEN
      INSERT (name, gender)
      VALUES (source.FirstName + ' ' + source.LastName, UPPER(left(source.Gender,1)));
END

Снимок экрана вывода:

введите здесь описание изображения

Надеюсь, это поможет тебе.

person Jay Gong    schedule 16.07.2018
comment
вы можете помочь stackoverflow.com/questions/66739714/ - person wwnde; 22.03.2021