【问题标题】:test ssis transformation expressions in management studio and creating an expression在 Management Studio 中测试 ssis 转换表达式并创建表达式
【发布时间】:2009-01-19 12:30:50
【问题描述】:

我正在尝试从另一个字符串中删除部分字符串,例如:

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

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

我正在尝试删除 '~~34235645463544563554'

我习惯于使用内置的 tsql 函数(如上所示)来执行此操作,但尝试在 ssis 的一个步骤中执行与“派生列转换”相同的操作。有人可以建议我如何做到这一点,以及是否有一种简单的方法可以在管理工作室中快速测试这一点?即使用 ssis 中编写的表达式来测试预期结果。我不想运行整个东西,因为它是一个大包。

【问题讨论】:

    标签: sql-server tsql ssis


    【解决方案1】:

    最后我用了一个脚本组件:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多