Word包装问题与SSIS平面文件目的地

时间:2014-12-24 16:15:03

标签: sql-server ssis notepad++ word-wrap

后台:我需要生成一个包含5个记录的文本文件,每个记录的长度为1565个字符。该文本文件还用于将数据馈送到软件。 因此,它们是一些必填字段和可选字段。我创建了一个查询,其中所有字段一起添加以获得一个字段。我用空白填充了可选字段。

例如:

以下是每个字段的示例输入布局

Field       CharLength    Required
ID             7             Yes
Name           15            Yes 
Address        15            No 
DOB            10            Yes 
Age            1             No 
Information    200           No
IDNumber       13            Yes

然后我为每个唯一ID生成一个查询,上面的字段为一行,如下所示:

> SELECT Cast(1 AS CHAR(7))+CAST('XYZ' AS CHAR(15))+CAST('' AS CHAR(15))+CAST('22/12/2014' AS  
  CHAR(10))+CAST('' AS CHAR(1))+CAST(' AS CHAR(200))+CAST('123456' AS CHAR(13))                                                            
  UNION                                                                                          
  SELECT Cast(2 AS CHAR(7))+CAST('XYZ' AS CHAR(15))+CAST('' AS CHAR(15))+CAST('22/12/2014' AS  
  CHAR(10))+CAST('' AS CHAR(1))+CAST(''AS CHAR(200))+CAST('123456' AS CHAR(13))

然后,我创建了一个SSIS包,通过Flat file destination delimited 生成输出文本文件。

问题:

即使按照所需长度生成平面文件(1565)。当自动换行 开启关闭时,文本文件的外观会有所不同。当Word换行关闭时,我以单行获取记录。如果启用了Word换行,则该行将分为多个。在任何一种情况下,记录的长度都是相同的。

即使我尝试在查询中使用 VARCHAR + Space 而不是每个字段使用 CHAR ,但是没有成功。它打破了空白领域的界限。

例如: Cast('' as varchar(1)) + Space(200-len(Cast('' as varchar(1))))信息字段

问题:即使自动换行为ON,如何将其组成一行。

自我发表第一篇文章以来,请原谅我提出的问题格式

1 个答案:

答案 0 :(得分:2)

自动换行的目的是在溢出的实例中将字符放在下一行而不是创建极其水平的滚动文档。

  

自动换行是大多数文本编辑器,文字处理器和网络浏览器的附加功能,可能会在单词之间而不是在单词之间划分界限。

因为这就是自动换行 ,所以你无法改变其行为。无论如何,这有什么关系?仍应按照您的预期解析文档。只是不要换字。

据我所知,打开或关闭自动换行对文档本身没有影响,它只是一个演示选项。

解析文档的应用程序将其解析,就好像自动换行一样。 可以抛弃解析的东西是新行的中断,但这与自动换行完全不同。