【问题标题】:SQL Server BIDS data manipulationSQL Server BIDS 数据操作
【发布时间】:2012-06-12 16:01:35
【问题描述】:

我有一个 Excel 源和一个 OLE 数据库目标。对于列映射,我需要首先对列执行一些数据操作。

如何从源列之一获取要映射到目标列之一的子字符串?

如何在我的某一列上使用查找表来获取与查找表关联的值,然后将该值映射到我的目标列之一?

我想尽可能多地使用 C# 脚本。

谢谢!!

【问题讨论】:

    标签: sql-server bids


    【解决方案1】:

    您可以使用派生列转换来获取源列的子字符串。

    表达式

     SUBSTRING(COLUMN_NAME,START,END)
    

    在派生列选项卡中选择添加为新行。然后将此新列映射到目标。对于查找转换,请参阅我对 SO 问题之一的回复 Lookup Transformation

    为了在 C# 中执行此操作,将脚本组件拖到设计器上。选择输入和输出,然后添加一个新列(示例 NewColumn 作为名称)

       public class ScriptMain:UserComponent
      {
    
    
      public override CreateNewOutputRows()
      {
        int space = Row.SourceColumnName.IndexOf(' ');
      Row.NewColumn= Row.SourceColumnName.Substring(0,space)
    
      //If you need to retrieve the characters after second dot then
      //int firstDot=Row.Column.IndexOf('.')
      //int secondDot=Row.Column.IndexOf('.',firstDot+1)
     // Row.Newcolumn=Row.SourceColumnName.Substring(secondDot,Row.SorceColumnName.Length)
      }
      }
    

    【讨论】:

    • 我需要更多关于 START 和 END 的通用性。比如第一个空白字符位置,或者第二个点位置。我知道这在编程语言中很容易实现。那么如何在 C# 脚本中执行此操作?
    猜你喜欢
    • 1970-01-01
    • 2012-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多