SSIS包 开发的注意事项

本文分享了SQL Server Integration Services (SSIS)编程中的一些实用技巧和常见问题解决方案,包括nvarchar(max)的替代方案、CTE表达式的正确使用、数据流任务字段映射注意事项、调用webservice接口的XML处理技巧以及数据类型修改后的映射更新。
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成了&lt; &gt; 而且有xml报文头 ,需要在存储过程中替换下。
 
5.数据流 中涉及的字段如果数据类型有修改,源和目标都需要重新映射。

转载于:https://www.cnblogs.com/santiagoMunez/p/5353910.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值