我需要一些帮助。我想从表的列中获取XML数据。 XML数据有许多标签。其中一个标记包含
之类的值<Code date= 30/03/2013>
<apr id =1> -2 </apr>
<rdv id =2> 1 </rdv>
</code>
我需要运行一个检查日期的特定任务。就像today's date= (Code date -2)
或
today's date = (code date + 1)
运行邮件程序任务。
我应该怎么做?请原谅我的XML数据格式。我对XML很天真。
答案 0 :(得分:1)
创建2 variables来存储XML列Date值和另一个来获取当前日期。要编写表达式,选择变量,右键单击它。在属性窗口中设置{{ 1}}并写下EvaluateAsExpression =true
expression
使用 Name DataType Expression
ExecDate DateTime
CurrentDate DateTime GETDATE()
。设置Execute SQL Task
到Resultset
并编写以下代码以从表格中的XML列读取日期值
Single Row
在SELECT
convert(datetime,XMLData.value('(/Code/@date)[1]', 'varchar(10)'),103) as PkgDate
from yourTable
地图中,上面的sql查询输出变量resultset tab
ExecDate
在Result Name Variable Name
PkgDate ExecDate
之后放置另一个任务或组件Ex SEND Mail TASK
,并在Precedence Constraint中写一个表达式。
Execute SQL Task
仅当XML列的Date值与存储在变量Expression : @ExecDate==@CurrentDate
中的当前日期匹配时,才会执行@CurrentDate
之后的其他组件。
Execute SQL Task
要执行上述表达式,您需要更改today's date= (Code date -2) or today's date = (code date + 1) run a mailer task.
获取CodeDate +1
Execute SQL Task
我现在没有SSIS环境来测试它,但这就是你应该这样做的方式