протестировать выражения преобразования ssis в студии управления и создать выражение - PullRequest
0 голосов
/ 19 января 2009

Я пытаюсь удалить часть строки из другой строки, например:

declare @url varchar (20)
set @url = 'www.test.com~~34235645463544563554'

select @url, substring(@url,1,CHARINDEX('~~',@url)-1)

Я пытаюсь удалить '~~ 34235645463544563554'

Я использую встроенные функции tsql (как показано выше), чтобы сделать это, но пытаюсь сделать то же самое на шаге в ssis, как «преобразование производного столбца». Может кто-нибудь подсказать, как я могу это сделать и есть ли простой способ быстро проверить это в студии управления? то есть используя выражение, написанное в ssis, чтобы проверить ожидаемый результат. Я бы предпочел не запускать все это, поскольку это большой пакет.

1 Ответ

1 голос
/ 21 января 2009

В итоге я использовал компонент скрипта:

Dim debugOn As Boolean
debugOn = False
If debugOn Then MsgBox(Row.trackingCode)
If Row.trackingCode <> "" Then
    ' find the delimiter location
    Dim endLocation As Integer
    If debugOn Then MsgBox("index of ~~ is " & Row.trackingCode.ToString().IndexOf("~~", 0))
    ' chk if we have ~~ in field, if not in field then -1 is returned
    If Row.trackingCode.ToString().IndexOf("~~", 0) > -1 Then
        ' if ~~ at the beginning ie no tracking code
        If Row.trackingCode.ToString().IndexOf("~~", 0) = 1 Then
            endLocation = Row.trackingCode.ToString().IndexOf("~~", 0)
        ElseIf Row.trackingCode.ToString().IndexOf("~~", 0) > 1 Then
            endLocation = Row.trackingCode.ToString().IndexOf("~~", 0) - 1
        End If
        If debugOn Then MsgBox("end of track code is " & endLocation)
        Row.trackingCode = Row.trackingCode.Substring(1, endLocation)
    End If
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...