SSIS包 开发的注意事项
1. sql中的 nvarchar(max) 不要使用,可以用nvarchar(4000),SSIS程序字符串默认长度为4000
2.数据流任务 字段mapping时,如果所在操作系统为英文环境,对应字段如有为中文字符的,一定要用nvarchar类型字段接收,否则会报错 提示 字符被截断,即使字段长度足够也不行。
3.CTE 表达式 在SSIS中需要在with 前加semicolon ; 在表达式中用到的temp表 后面无法用sql直接引用。
for example:
;WITH temp as ( SELECT o.ShipmentsNo,COUNT(taxrate) cont,taxrate FROM btcporders o INNER JOIN dbo.BTCPItems i ON o.id=i.BTCPID --WHERE o.ShipmentsNo='R000544903' GROUP BY o.ShipmentsNo,i.TaxRate HAVING count(*)>1 ), temp2 AS ( SELECT a.ShipmentsNo,t.TaxRate FROM btcporders a INNER JOIN temp t ON a.ShipmentsNo=t.ShipmentsNo GROUP BY a.ShipmentsNo,t.TaxRate HAVING count(*)>1 ) UPDATE a SET a.IsTaxRateFreeze=1 FROM btcporders a INNER JOIN temp2 t ON a.ShipmentsNo=t.ShipmentsNo 报错信息:Invalid object name 'temp2'.
4. 使用SSIS调用 webservice接口 ,返回的xml信息其中<,>被自动encode成了< > 而且有xml报文头 ,需要在存储过程中替换下。
5.数据流 中涉及的字段如果数据类型有修改,源和目标都需要重新映射。
To be a better man