2014-12-24 62 views
1

背景:我需要生成一個文本文件,每個文本文件有1565個字符長度。該文本文件還用於將數據提供給軟件。 因此,它們是一些必填字段和可選字段。我創建了一個查詢,將所有字段添加到一起以獲取單個字段。我用空白填充可選字段。
自動換行問題SSIS平面文件目標

例如:

下面是每個字段

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 destinatio生成輸出文本文件n 分隔

問題:

即使平面文件作爲每個所期望的長度(1565)生成。當文字文件文字包裝ONOFF時,文本文件看起來有所不同。當Word換行關閉時,我得到單行的記錄。如果Word換行打開,則該行被分成多個。在任何情況下記錄的長度都是相同的。

即使我試圖用VARCHAR +空格在查詢,而不是CHAR的每一個領域,但沒有成功。它打破了空白領域的路線。

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

問題:如何使之成爲一個單一的線,即使自動換行開啓。

自從我的第一篇文章,請原諒我的問題

回答

2

自動換行的目的,是把人物放在下一行溢出的情況下,而不是創造一個極爲水平滾動文檔的格式。

自動換行是大多數文本編輯器,文字處理和網頁瀏覽器,打破了字與字之間線條而非字中的可能的附加功能,當。

,因爲這是自動換行沒有什麼可以做,以改變其行爲。無論如何,它有什麼關係?該文檔仍應按照您的預期進行解析。只是不要打開自動換行。

據我所知,打開或關閉文字換行對文檔本身沒有影響,它只是一個演示文稿選項。

解析文檔的應用程序解析它,就像自動換行關閉一樣。有些東西可能拋出解析是休息一個新的一行,但這是一個完全不同的事情從文字換行。

+0

由於我們需要將此文本文件發送給不同的公司,如果文件因此問題被拒絕,我的高級官員會感到害怕。 – lvars

+0

如果文件正在被一臺機器而不是一個人解析,則不會有問題。機器不會打開文字... ...然而... mwuahahaha – Kritner

+0

不,但嚴重的是,如果文件將被用於自動解析過程中,則不會有問題。自動換行是爲了便於演示而創建的,並且不會用於傳統的文件導入過程。 – Kritner