開篇介紹
SSIS 中處理文件,一般在描述輸出平面文件格式的時候通常會出現以下幾種選項:
- Delimited - 默認輸出列使用逗號分隔,也可以選擇其它的諸如 | ,或者 Tab 等。
- Fixed Width - 列定長輸出,固定長度,但不換行。
- Fixed Width with row delimiters - 其實就相當於 Ragged right,只不過換行符 CR+LF 的位置不同,這個是新的一列顯示一個換行符。
- Ragged right - 和上面的這個格式區別就是 CR+LF 換行符處於最后一列的位置。
哪幾種比較常用?
按我個人經驗,常用的順序應該是 -
Delimited -> Ragged right -> Fixed width with row delimiters -> Fixed width,其中 Fixed width 至今沒有使用過。
Delimited
每一列輸出的時候默認使用 ,號分隔,最后的一列跟換行符分隔。
輸出文件的樣式,並查看所有符號顯示回車加換行 CR+LF -
Ragged right
列定長輸出,因此列之間是沒有分隔符的。
只有在最后一列的時候有回車換行符。
實際輸出效果中最后一列跟回車換行符,還要注意的就是當輸出的實際列的寬度只有5的時候,比如 False 長度為5,但是在定長的時候如果考慮輸出列標題,是需要參考列標題的長度的,否則輸出報錯。
Fixed width with row delimiters
它和 Ragged Right 表現差不多,只不過最后一列是額外添加的一列,專門用來標識回車換行。
Fixed width
定長但是沒有默認換行,這個效果就是所有數據一行展開。
總結
在我第一個 BI 項目中就有大量的這種類型的需求,比如像上面的兩種定長輸出和換行的位置,在有些輸出文件格式中就有明確的要求和說明。通過理解以上幾種文件輸出格式,再以后碰到類似的需求的時候就很容易弄明白彼此之間的區別了。
更多 BI 文章請參看 BI 系列隨筆列表 (SSIS, SSRS, SSAS, MDX, SQL Server) 如果覺得這篇文章看了對您有幫助,請幫助推薦,以方便他人在 BIWORK 博客推薦欄中快速看到這些文章。