2011-07-22 26 views
0

我需要分析数据库中的引用字段以了解它们组成的模式。这需要在字符级别完成,因为参考字段中不会有空格或标点符号。SSIS或SQL Server中的字符级别分析

例如,我正在寻找一个解决方案,将采取类似的输入:

ABA1235DV6778 ABA1235DV6788 ABA2335DV6778

,并建议模式,如:

ABA \ d \ d35DV67 \ d \ d

一旦我能理解那些列中的允许值,将用于稍后验证这些参考字段。

我已经看过SSIS中的分析功能,但它似乎缺少粒度。有人知道我可以如何调整SSIS 2008中的分析,或者是否有可用于实现此功能的SQL Server 2008高效函数?

任何帮助将不胜感激,

尼尔

回答

1

这不是从您的帖子究竟真的清楚你要应用到琴弦什么逻辑。我猜你想要使用某种形式的edit distance计算来识别类似的字符串,然后generate a regular expression匹配它们。这些通常是在用适当语言编写的外部程序中实现的任务,而不是SSIS或SQL Server中的任务。这当然不是你可以用现有的SSIS功能做的事情。

因此,我现在会忘记SSIS,并找出在.NET中实现算法的最佳方式(或其他您熟悉的语言)。一旦你这样做,你可以决定是否要:

  • 写一个自包含的可执行文件,并从执行进程任务
  • 把它写一个.NET的DLL和脚本任务,脚本组件使用或者CLR存储过程
  • 写您自己的自定义组件SSIS
  • 写一个完整的程序,而不是使用SSIS
+0

的是的,我以为我会需要使用CLR函数。基本上,我正在寻找模式候选人,而不是一个所有emcompassing模式。 SSIS分析器已经在一定程度上做到了这一点,但它似乎很快就消除了候选人,因此除非大量人口具有完全相同的模式,否则结果中我只会看到\ w +之类的内容。 – niallsco