我正在使用Script Task构建SSIS包。
有这一行:
Dim rows As DataRow() = dsUnsorted.Tables(0).[Select]("FileName like '*.csv'", "FileDate ASC")
这个工作正常。
但我需要将其更改为:
Dim rows As DataRow() = dsUnsorted.Tables(0).[Select]("FileName like 'sales*.csv'", "FileDate ASC")
like
命令应该只有'sales*.csv'
而不是'*.csv'
。当我进行更改时,脚本任务遇到错误。
我应该怎样写得正确?
答案 0 :(得分:0)
不幸的是,数据表中使用的like语句只允许在您尝试过滤的字符串的开头和结尾处使用通配符。
因此,对于我习惯于喜欢MS SQL服务器中的语句,您会认为您的代码为:
Dim rows As DataRow() = dsUnsorted.Tables(0).[Select]("FileName like 'sales*.csv'", "FileDate ASC")
是对的。
但是,您需要实际拆分比较以检查您正在检查的字段的开头和结尾。
正确完成任务的方法是添加一个和语句来检查字段的开头和结尾,因为这是允许使用通配符的唯一位置。
Dim rows As DataRow() = dsUnsorted.Tables(0).[Select]("FileName like '*.csv' and FileName like 'sales*'", "FileDate ASC")