Выражение столбца, полученное в SSIS для преобразования логического значения в символ CAST

У меня есть небольшая борьба с выражениями внутри производных столбцов SSIS.

Мое исходное поле - это тип данных BOOLEAN. Поле назначения - это тип данных SQL CHAR.

** Обратите внимание, что я не проектировал ни одну из схем. Если бы я поступил по-своему, типы данных совпали бы. К сожалению, это не мой случай!

Я нашел отличный пример регулярного выражения .NET, преобразующего CHAR в BOOL. Это полная противоположность тому, что я пытаюсь достичь:

[valToTranslate] == "Y" ? (DT_BOOL)1 : [valToTranslate] == "N" ? (DT_BOOL)0 : NULL(DT_BOOL)

Я безуспешно пытался реализовать формулу, обратную этому выражению. Вот моя неудачная попытка:

[valToTranslate] == 0 ? (DT_WSTR,1)"N" : [valToTranslate] == 1 ? (DT_WSTR,1)"Y" : "N"(DT_WSTR)

Я не уверен, что CAST to (DT_WSTR, 1) даже верен для полей типа данных CHAR SQL? Должен ли я использовать вместо этого (DT_STR, 1)? Любая помощь приветствуется.


person D3vtr0n    schedule 12.05.2009    source источник


Ответы (1)


Вы пробовали просто

[valToTranslate] ? "Y" : "N"

Это должно сработать - вам может потребоваться преобразовать Y и N в DT_STR, если предполагается, что они по умолчанию WSTR.

person Harper Shelby    schedule 12.05.2009
comment
Пакет SSIS ОБЯЗАТЕЛЬНО требует, чтобы вы выполняли CAST поле в DT_STR в задаче преобразования данных. Это действительно работает и, очевидно, намного проще, чем мой подход. Мне все еще любопытно, как написать для этого сложное выражение. Спасибо за помощь, вы решили мою проблему :) - person D3vtr0n; 12.05.2009