【问题标题】:Appending letters to Member ID filter将字母附加到成员 ID 过滤器
【发布时间】:2016-09-08 16:30:10
【问题描述】:

我对 .net 代码还很陌生。我在脚本任务-SSIS 中使用 C# 代码

我正在使用批量复制任务根据 MemberID 将数据从 oracle 提取到 sql db。 我在表中有成员 id 列,其中包含所有整数值.. 会员编号前:123456 但我在 oracle 中有数据,如 123456A,我需要在每个成员的末尾附加字母,然后在 oracle 中搜索并且字母不固定..我必须在最后为每个成员添加 A 到 M。非常感谢任何帮助 sSQL_For_Incoming_MemID 参数是从 sql 中获取 id 的查询。 EX:从表中选择不同的 MemberID 作为 HICN 谢谢

【问题讨论】:

  • 您是从 Oracle 复制的,信函已经存在,对吧?然后您不需要添加它 - 您需要更改您的 SQL 字段以接受带有字母的内容。还是我很困惑?这就是我们喜欢索要代码的原因。你真的没有描述问题是什么。
  • 是的有点混乱..我在表中获得了成员字段,其中包含所有整数成员 ID,但在查询中我必须传递成员 ID+字符串...
  • 好的 - 我需要弄清楚这一点。您正在从 oracle 复制到 sql。在 Oracle 中,它是 123456,但在 SQL 中,它是 123456A - 你需要通过 M 添加一个 A 吗?然后你不能用 bulkCopy 做到这一点 - 如果每条记录的过滤器都不同,你必须遍历并单独添加过滤器。
  • 在 sql 中没有我有 123456 ..但必须将 123456A 到 123456M 传递给脚本任务中的 oracle 查询:(..我需要迭代的帮助
  • 如果这只是为了在 Oracle 中查找记录,那么您可以将 BULK COPY 中的 SELECT 语句修改为 WHERE memberID LIKE '123456%'

标签: c# c#-4.0 ssis script-task


【解决方案1】:
Select * from myTable where memberID like '123456%' and ASCII(right(memberID,1)) > 64 and ASCII(right(memberID,1))< 78  

在甲骨文中:

Select * from myTable where memberID = '123456_' and ASCII(substr(memberID,-1)) > 64 and ASCII(substr(memberID,-1))< 78  

要让它在您的脚本中工作,请查看:

 Dts.Variables["$Package::sSQL_For_Incoming_MemID"].Value.ToString();

找出它的值是什么,然后操纵它以等于我上面的 SQL。如果您需要帮助,请发布第一次运行时 Dts.Variables["$Package::sSQL_For_Incoming_MemID"].Value.ToString() 的内容,我将为您整理一个操作。

【讨论】:

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