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