Как вставить хэш-значение в базу данных sql azure из потока данных фабрики данных azure

#azure #azure-data-factory #sha256 #derived-column #azure-data-flow

#azure #sha256 #производный столбец #azure-data-factory

Вопрос:

У меня есть база данных sql, которая хранит хэш-значение в столбце двоичного типа данных. Я использую sql-хэшбайты алгоритма shah256 в моей хранимой процедуре sql для поиска хэш-значения и сохранения в БД. Я хочу повторить то же самое на фабрике данных Azure. Я вижу алгоритм sha2 (256) в производном выражении в потоке данных и пытаюсь использовать эту функцию. Но это возвращает строку, и я пытаюсь преобразовать это в двоичный файл и вставить в базу данных sql, используя действие приемника. Но я получаю приведенную ниже ошибку.

 {"messa&e":"at Sink 'EmployeeInsert': java.sql.BatchUpdateException: Strin& or binary data would be truncated.. Details:at Sink 'EmployeeInsert': java.sql.BatchUpdateException: Strin& or binary data would be truncated.","failureType":"UserError","tar&et":"EmployeeDataFlow","errorCode":"DFExecutorUserError"}
  

Надеюсь, я подробно объяснил свою проблему и буду признателен за любую помощь. Заранее спасибо.

Комментарии:

1. где происходит преобразование из строки в двоичный файл? Похоже, что вы выполняете это приведение в хранимой процедуре. Правильно?

2. И, можете ли вы сказать мне, какова длина параметра хранимой процедуры, который принимает ваше хэш-значение?

3. я конвертирую в производный столбец активности потока данных. Я не использую здесь какую-либо хранимую процедуру. Это пример выражения toBinary(sha2(256,строка))

4. Ошибка связана с длиной столбца. Каков тип данных столбца в таблице? это двоичный файл или что-то подобное? Вы уверены, что это не что-то похожее на varchar

5. Я не думаю, что sha2 (256) поместится в двоичный файл (32). Попробуйте binary(64). Вы всегда можете использовать len&th (sha2(256, столбцы)) в своем выражении потока данных, чтобы подтвердить длину строки и посмотреть, впишется ли она в это преобразование.