как создать поле для каждой строки и добавить к нему текст на каждом уровне трансформации - PullRequest
0 голосов
/ 30 апреля 2018

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

Есть логика, что мне нужно проверить некоторые условия, и каждое условие имеет сообщение об ошибке. Исходя из требования, должен быть столбец, к которому должен быть добавлен текст ошибки.

Я попытался создать столбец в «Производном столбце», а затем присвоить ему текст моей ошибки.

Для второго случая я создал новый столбец в «Производный столбец», а добавленный предыдущий столбец с новым следующим создал второй столбец и до конца для других случаев.

Теперь проблема в том, что он плохо работает, и у меня есть.

Я хочу знать, как лучше всего добавить новую строку текста в столбец в службах SSIS.

Псевдокод должен быть таким, как показано ниже:

String error_text = "";

if logic 1 failed then error_text+= "error1"
if logic 2 failed then error_text+= "error2"
if logic 3 failed then error_text+= "error3"

моя база данных - Oracle, и я использую соединение OLEDB.

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

У вас есть следующие варианты:

  • Создать новый столбец для каждой проверки в производной задаче столбца. Это должно сделать выражения простыми и легко отслеживаемыми. Создайте еще одну производную задачу столбца после предыдущей, которая объединит все возможные ошибки, что будет вашим окончательным сообщением об ошибке.

  • Создайте новый столбец со всеми возможными сообщениями об ошибках, объединив все ваши выражения проверки в огромное, труднодоступное и еще труднее читаемое выражение SSIS. Синтаксис служб SSIS не лучший для этих случаев.

  • Ваша логика в источнике ваших данных будет в вашей базе данных Oracle в вашем случае. SQL намного проще просматривать и поддерживать (и, как правило, быстрее) выражений SSIS.

  • Используйте пользовательский сценарий (например, VB или C #) для проверки условий и создания сообщения об ошибке. Это лучше, чем использование выражений SSIS, но требует немного больше знаний в области программирования.

Если у вас уменьшено количество проверок ошибок (ниже 10), я бы предложил сделать первый подход. Если вы хорошо разбираетесь в C # / VB или можете ожидать, что вам понадобится много проверок и поддержки, тогда последний будет лучшим.

0 голосов
/ 30 апреля 2018

Попробуйте сначала разбить данные с помощью условного разбиения, а затем использовать производный столбец для каждого условия ошибки. Это должно помочь. Кроме того, вы можете попробовать создать оператор CASE в Oracle и посмотреть, будет ли это проще для вас.

...