如何映射从数据库中的表而不是SSIS包中的文件中获取平面文件数据的列?

如何映射从数据库中的表而不是SSIS包中的文件中获取平面文件数据的列?,ssis,ssis-2012,Ssis,Ssis 2012,在ssis包中,我希望映射从数据库中的表而不是文件中获取固定宽度数据的列。 我知道使用文件连接管理器也可以做到这一点,但我想使用我的表作为源,而不是文件 我使用OLEDB源代码工具箱作为源代码,并编写了一个SQL查询,该查询将给我一行 现在,我必须根据文件连接管理器中的网格映射列 在不使用派生列工具的情况下,有什么方法可以做到这一点吗 表中的值是固定宽度的数据。编写适当的SQL选择,以便检索已拆分的值。在SQL中实现这一点要比在SSI上使用派生列容易得多,这既有利于可读性,也有利于维护 有关SQ

在ssis包中,我希望映射从数据库中的表而不是文件中获取固定宽度数据的列。 我知道使用文件连接管理器也可以做到这一点,但我想使用我的表作为源,而不是文件

我使用OLEDB源代码工具箱作为源代码,并编写了一个SQL查询,该查询将给我一行

现在,我必须根据文件连接管理器中的网格映射列

在不使用派生列工具的情况下,有什么方法可以做到这一点吗


表中的值是固定宽度的数据。

编写适当的SQL选择,以便检索已拆分的值。在SQL中实现这一点要比在SSI上使用派生列容易得多,这既有利于可读性,也有利于维护

有关
SQL Server
的示例,您可以对固定宽度列使用
SUBSTRING

SELECT
    FixedWidthColumn1 = SUBSTRING(T.FixedWidthColumn, 1, 20),
    FixedWidthColumn2 = SUBSTRING(T.FixedWidthColumn, 21, 15),
    FixedWidthColumn3 = SUBSTRING(T.FixedWidthColumn, 36, 14),
    FixedWidthColumn4 = SUBSTRING(T.FixedWidthColumn, 51, 19),
    FixedWidthColumn5 = SUBSTRING(T.FixedWidthColumn, 70, 100)
FROM
    YourTable AS T

我认为更容易编写一个视图,使用子字符串将固定宽度数据解析为视图列,然后将其用作SSIS中的表源。我一直都是这样做的,这正是我的意思。