zoukankan      html  css  js  c++  java
  • [转]在SSIS中,使用“包配置”时的常见错误与解析

    本文转自:http://www.cnblogs.com/invinboy/archive/2008/05/26/1034312.html

    在以前的DTS中,在包的开发、测试、发布迁移过程中你必须手动的修改包中的所有连接参数及其变量的值,幸运的是,现在在SSIS中提供了这种问题的解决方案,那就是“包配置

    包配置是一个动态改变你的SSIS对象和连接属性的一种机制,它把这些动态可以改变的信息保存在包的外部,在需要修改的时候,可以灵活地加以配置,再也不用进入到包的开发环境中去进行修改、编译、发布。   总共有下面几种方法存储这些值并将其传送到包中:

    XML文件

    环境变量

    注册表键值

    父包变量

    但是在使用包配置的过程中,还不是一帆风顺的,有挫折、有苦恼,有郁闷,幸好,最后都统统化为了成功和喜悦,下面就请大家与我一起来分享我的挫折和喜悦:

    一、数据库连接在包中配置完成后,但包却不能成功运行:    选择[SSIS菜单]-->[包配置]-->[启用包配置]-->[添加]-->选择[XML文件]-->[下一步],选择以下属性:

    ConnectionString

    InitialCatalog,

    Name

    Password

    ServerName

    UserName      
      如图:         

    一切都按缺省设置,至最后完成。点击[运行],出现如图所示错误:

     

    解决:从windows 资源管理器中,找到配置文件(*.dtsconfig),原来是配置文件中的用户密码丢失了,手工补上,

     

    [保存]―>[运行],仍然跳出以上错误,为什么啊?

     解决:再打开配置文件,发现还有一个地方面,密码为空,补上:
      [保存]―>[运行],一切OK。

    分析:为什么配置了ConnectionString 属性,还要配置UserName、Password呢,左思右想,不得其解,再试着修改一下ConnectionString属性(故意改错),
    再[运行],还是能成功运行,这就有点怪了,难道ConnectionString属性没有什么用?带着这个疑问,我将下面的InitialCatalog,、Name、Password、ServerName、Us
    erName 全部删除,只剩下ConnectionString 属性,又当如何,意外发生了,竟然成功了,后来查了一些资料,也没有得到准备的答案,个人猜想,如果Connecti
    onString、InitialCatalog,、Name、Password、ServerName、UserName这些属性同时存在时,则以InitialCatalog,、Name、Password、ServerName、UserName配置
    的属性优先,否则以ConnectionString属性为准。如果不对,请网友更正一下。
      二、连接oracle 数据库出现的问题:

    当配置文件中有Oracle 数据库的连接配置时,按照上面的方法,配置了ConnectionString、InitialCatalog,、Name、Password、ServerName、UserName这些属
    性,[运行],Error  “可能是连接不正确,或者你没有访问该连接的适当权限”,难道上面的结论有误?删除ConnectionString 属性,仅剩下InitialCatalog,、   
    Name、Password、ServerName、UserName这几个属性时,[运行],还是出错,这就怪了,再反过来,删除InitialCatalog,、Name、Password、ServerName、    UserName属性,仅剩下ConnectionString 属性,[运行],成功。

    分析:在[包配置]的属性配置器上,没有驱动程序配置这一项,我们仅配置了InitialCatalog,、Name、Password、ServerName、UserName这几个属性, 
    所以SSIS不知道,是要连接Sql server 还是Oracle ,缺省都是连接SQL Server ,所以连接不正确,但是ConnectionString 属性,却可以写入驱动程序,如图:


     

    三、SSIS包在开发环境下,[运行]正常,但通过Job 任务,却运行出错?
       SSIS包在开发环境下,或者直接双击包文件(前提:启用包配置),如图:

    [执行]成功,但是通过 Sql Server 代理(job )来执行,如图


    却不能成功,错误如下:

    解决:去掉配置文件ConnectionString 属性的Auto Translate=False; 就OK了

    分析:还没有找到原因,希望能和网友一起讨论。

    总结:数据库连接字符串在SSIS包中配置时,属性不能多,也不能少,仅ConnectionString 属性足已,修改容易,扩展好。

    如图:

     
     
  • 相关阅读:
    出现“在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。”这样的错误!
    关于sql server 2008过期导致 MSSQLSERVER服务就无法启动,手动启动就报告错误代码17051。
    ASP.NET 回调技术(CallBack)
    Asp.net中的ajax回调模式(ICallbackEventHandler)
    CKEditor4.1和CKFinder2.3.1 for Mvc4最新 破解版,结合 打造"帅"的编辑器 For .Net
    .net_ckeditor+ckfinder的图片上传配置
    文件上传限制大小 dotnet/C#
    C#.Net 上传图片,限制图片大小,检查类型完整版
    图片上传代码(C#)
    C#中操作xml文件(插入节点、修改、删除)
  • 原文地址:https://www.cnblogs.com/freeliver54/p/3642766.html
Copyright © 2011-2022 走看看