#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, столбцы)) в своем выражении потока данных, чтобы подтвердить длину строки и посмотреть, впишется ли она в это преобразование.