微软BI 之SSIS 系列 - MVP 们也不解的 Scrip Task 脚本任务中的一个 Bug
来源:互联网 发布:vpn服务器架设软件 编辑:程序博客网 时间:2024/05/19 13:18
开篇介绍
前些天自己在整理 SSIS 2012 资料的时候发现了一个功能设计上的疑似Bug,在 Script Task 中是可以给只读列表中的变量赋值。我记得以前在 2008 的版本中为了弄明白这个配置,还特意测试过这个细节,获取错误并理解了这个功能。但是现在回去再次测试 2008 的版本时,发现这个功能在 2008 中其实也是错误的,把我印象中的测试结果完全给推翻了,所以到现在已经搞不清楚我当时到底是如果得出这个错误的。
疑似功能 Bug 描述
在 SSIS 包中定义了用户自定义变量 - PV_CURRENT_DATE,并且把它们放置在 ReadOnlyVariables 中,按照我们的通常理解那么这些变量在 Script Task 中应该就是只读性质的,不能赋值给他们。如果需要读写一个变量,那么这个变量就应该放到 ReadWriteVariables 中。
在代码中可以看到 PV_CURRENT_DATE 这个变量被赋值了。
按道理应该报错的,包执行失败的,结果却是执行成功!
那么在 SSIS 2012 中要如何解决或者描述这个问题呢? 测试一下,修改变量 PV_CURRENT_DATE 将它的 ReadOnly 属性修改为 True,标明是只读,这个时候才会出错。
通过断点调试就会发现这个错误的原因就是 : Error trying to write to a read-only variables,试图向只读的变量写值。
唯一能解释的通的就是在 SSIS 2012 中的 ReadOnlyVariables 列表中出现的就只能是 ReadOnly = True 的变量,在 ReadWriteVariables 是可以看到 ReadOnly = False 或者 ReadOnly = True 的所有变量。如果本意是这样的话,我觉得这种设计显得非常的别扭,并且 ReadOnlyVariables 这个很容易给人误导,让人认为是放入其中的变量在 Script Task 中就是只读的!
MSDN 论坛
我把这个问题也贴在了 MSDN 论坛 - Is it a bug - SSIS 2012 ReadOnlyVariables in Script Task doesn't work
回复帖子的两个 MVP SSISJoost 和 Visakh16 也都重现了这个问题,也认为这是一个设计上的 Bug。
但是我最后还是自己否定了自己,只能说是疑似 Bug,但是从这个角度来考虑,也确实可能就是 By Design,以下是我的个人观点:
关于这个问题,我也提给了微软,可以访问 SSIS 2012 ReadOnlyVariables in Script Task doesn't work 来关注微软技术团队最终的确认。
对于这个问题,包括上面两个非常 NB 的 MVP 以及被我挖出来的这个帖子 SSIS Script task 'ReadOnlyVariables' 中的另外两个牛人 MVP ArthurZ 和 Reza Raad 也同样对这一个特性持有疑似 Bug 的观点。
如果这么多人也都这么认为的话,即使不是 Bug,这个设计也是存在问题和缺陷的,因为着着实实误导了很多人。
PS
MVP Reza Raad 的代表作 《Microsoft SQL Server 2012 Integration Services: An Expert Cookbook》
其它有关 Script Task 脚本任务的文章
微软BI 之SSIS 系列 - 使用 Script Task 访问非 Windows 验证下的 SMTP 服务器发送邮件
MSDN 论坛的 BI MVP 们
- ArthurZ (MVP,MCDBA, MCAD, MCTS and MCITP)
- Reza Raad (MVP, MCP, MCTS and MCI《Microsoft SQL Server 2012 Integration Services: An Expert Cookbook》作者)
- SSISJoost (MVP, SSIS)
- Visakh16 (MVP, SSIS,SSAS,SSRS)
更多 BI 文章请参看 BI 系列随笔列表 (SSIS, SSRS, SSAS, MDX, SQL Server) 如果觉得这篇文章看了对您有帮助,请帮助推荐,以方便他人在 BIWORK 博客推荐栏中快速看到这些文章。
0 0
- 微软BI 之SSIS 系列 - MVP 们也不解的 Scrip Task 脚本任务中的一个 Bug
- 微软BI 之SSIS 系列 - ErrorOutput 错误输出与处理
- BI SSIS应用系列之脚本赋值及FTP上传下载
- 微软 BI ssis 中的 script task中用代码直接调用 WCF / Webservice
- 微软BI系列——Checkpoints在SSIS中的妙用收藏
- SSIS 中的文件系统任务 (File System Task)
- BI SSIS应用系列之发送邮件
- 微软BI专题-Checkpoints在SSIS中的妙用
- 微软BI 之SSAS 系列
- 微软BI 之SSAS 系列
- 3.10、BI之SSIS之序列容器与文件系统任务
- 3.11、BI之SSIS之执行SQL任务
- SSIS PACKAGE excute sql task 选 single row 模式的一个bug
- 一个DLL例子中的不解之处
- BI SSIS应用系列之循环导入Excel文件
- 为SSIS编写自定义任务项(Task)之入门篇
- 为SSIS编写自定义任务项(Task)之进阶篇
- 为SSIS编写自定义任务项(Task)之高级篇
- 经典中的品味:第二章 C++基本的对象,类型和值(上)
- easyui datagrid 离开行进行统计
- 关于cron机制
- 如何防护SSL V3.0漏洞
- Scapy,IPTables,Brupsuite在ARP毒化攻击中的实用性技巧
- 微软BI 之SSIS 系列 - MVP 们也不解的 Scrip Task 脚本任务中的一个 Bug
- 网页自动适应屏幕宽度的CSS代码
- iOS image base64的转换
- Revit Element Essentials
- Ant来执行java代码
- 董明珠回应“对赌”:格力与小米没有可比性
- 阿里会成为下一个谷歌?谁才是Google真正的挑战者
- android:TableLayout表格布局详解
- IcePHP框架 新增了 管理后台四层权限功能