SSIS 2012 列 header 对于列宽来说太长 提取固定宽度的平面文件

SSIS 2012 column header is too long for column width Extracting fixed width flat file

我正在尝试将 table 从 sql 数据库中提取到固定宽度的平面文件中。

有没有办法 change/shorten 列名称正好符合格式?我使用的是 "ragged right" 文件格式,没有 headers.

列的数据看起来很完美

感谢任何帮助。

史蒂夫

SSIS 真的 喜欢一致的元数据。平面文件定义指定性别的长度为 1,它会将列 header 保持在与它保持数据相同的标准。我对固定宽度文件的经验是,它们从来没有 headers,当它们有几千字节宽时这很痛苦,这可能是由于这个问题。

您可以做的是在平面文件目标中手动指定 header 行。

在我的连接管理器中,我取消选中第一行中的列名并将 Header 行跳过值增加到 1。

在我的示例中,我使用了以下查询

SELECT
*
FROM
(
    VALUES
    ('AAAAAAAAAAAAAAAAAA','BBBBBBBBBBBBBBBBBBBBBBBB','M','CCCCCCC')
)D(c1, c2, Gender, c4);

这导致输出文件看起来像

Col1Is18BytesWide NextColumnAlignsWithNextGenderSeeWhatIDidThere
AAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBMCCCCCCC

这可能是也可能不是您正在寻找的解决方案。我认为看到列 header 与数据值不一致会让我发疯,但你永远不知道其他系统如何期望它们的数据。