SSIS无法识别日期列数据类型

时间:2018-09-10 15:13:01

标签: sql-server ssis sql-server-data-tools

好的,所以我制作了这个演示来介绍我的项目存在的问题。

首先,我的本地数据库中有一个空表,如下所示:

enter image description here

*请注意列A的日期数据类型。

接下来,我使用Microsoft.SqlServer.Dts.Runtime通过Visual Basic通过编程方式使用连接管理器生成了一个程序包

Imports Microsoft.SqlServer.Dts.Runtime

Module Module2

    Sub Main()

        Dim app As Application = New Application()
        Dim package As Package = New Package()

        Dim connectionManager As ConnectionManager = package.Connections.Add("OLEDB")
        connectionManager.Properties("Description").SetValue(connectionManager, "DESCRIPTION")
        connectionManager.Properties("Name").SetValue(connectionManager, "Test")

        Dim Provider As String = "SQLOLEDB"
        Dim ServerName As String = "DESKTOP-UPN5DLT"
        Dim DatabaseName As String = "Test"

        connectionManager.ConnectionString = "Data Source=" &
            ServerName & ";Initial Catalog=" &
            DatabaseName & ";Provider=" & Provider & ";Integrated Security=SSPI;"

        app.SaveToXml("C:\Users\zafir\Desktop\Package_3.dtsx", package, Nothing)

    End Sub

End Module

接下来,我在数据工具中打开.dtsx包,并使用单个OLE DB目标组件添加数据流。

当我将组件绑定到生成的连接管理器时,无法识别列A的数据类型,并将其设置为大小为DT_WSTR的默认值。

enter image description here

可以正确识别所有其他数据类型(在这种情况下:datetime和int)。

现在,如果我删除ole db连接管理器,并手动添加它,它将像超级按钮一样工作。

我有以下规格:

  • SQL Server 2016
  • 数据工具2015
  • DTSRuntimeWrap.dll 12.0.0.0

我该如何解决?这显然是库的问题。

0 个答案:

没有答案