2012-11-13 52 views
2

我有一個文件,如下所示;請幫助如何通過SSIS導入它。問題是如何跳過起始行,因爲文件的其餘部分已將所有列標籤分隔開。此外,我需要從標題行中獲取一些信息,例如BSC的名稱以用作另一列。通過SSIS導入帶有不規則標題行的文本文件

BSS release : 11      
Name of BSC : E344_JUB4      
Type of measurement : RT110_CELL/TRX related overview counters   
Measurement begin date and time : 5/21/2012 7:00  
Measurement end date and time : 5/21/2012 8:00    
Input file name : /alcatel/var/share/AFTR/APME/BSC/PMRES110.30A.16.E344_JUB4.2012-021.05:00:29.35.259        
Output file name : /alcatel/var/share/AFTR/APME/OBSYNT/E344_JUB4/20120521/R11000008.142    
BTS_INDEX BTS_SECTOR CELL_NAME CELL_CI CELL_LAC BSC_MCC BSC_MNC MC01 MC02 MC02A MC02B MC02C MC02D MC02E MC02F MC02G MC02H MC02I MC03 MC04 MC07 MC10 MC101 MC1040 
1 1 JUB3227_4 32274 3719 420 F03 246 597 264 23 37 1 0 0 30 242 0 0 0 0 0 0 0 
1 2 JUB3227_5 32275 3719 420 F03 331 6508 6118 25 51 3 0 0 40 271 0 0 0 0 0 0 0 
1 3 JUB3227_6 32276 3719 420 F03 156 640 294 75 40 2 0 0 24 205 0 0 0 0 0 0 0 
10 1 JUB3227_1 32271 3719 420 F03 151 1821 1584 17 36 3 0 0 8 173 0 0 0 0 0 0 0 

回答

0

假設你的文件的標題行的固定數目,那麼下面應該工作;

將源的讀取分爲兩個單獨的數據流。第一個傳遞頭文件;第二個細節。

在第一個流中,將該文件視爲冒號定界。添加源代碼(Excel?)控件,將數據訪問模式更改爲「SQL命令模式」。添加一條SQL語句,如SELECT top 2 f1 FROM [Sheet1 $]。這將從第一張表中選擇前兩行並僅返回f1列。您需要針對您的文件進行調整,以涵蓋所需的標題行數。

添加派生列以將名稱:值對拆分爲兩部分。創建3個新的派生列。 (f1,FINSTRING(f1,「:」,1) - 1) - Second =「Value」,其表達式類似於RIGHT(f1,LEN(f1) - FINDSTRING (F1, 「:」,1) - 1) - 三= 「密鑰」 與表達式1

添加樞軸控制到許多行(每一個參數)切換成許多列。輸入「名稱」作爲樞軸鍵,「鍵」作爲設置鍵和「值」作爲樞軸值。在輸出值生成數據透視表列中,輸入每個報頭名稱的值,即[BSS釋放],[BSC名稱],[...]這將產生一行,並將所有標題值作爲列。然後,您可以將其與詳細數據結合使用,或單獨存儲。

在詳細信息源中,將連接設置爲跳過標題行,以繞過標題信息。視爲你將不帶標題信息的文件。使用派生列組件添加文件名等變量。

+0

謝謝你的想法。但是你能否詳細解釋一下如何執行這兩個步驟,因爲我是SSIS的新手。我的意思是你能告訴我要寫什麼腳本來獲得三個字段「BSC名稱」測量開始時間「和」測量結束時間「。如何執行第二步,以便可以將第一步中的列添加到第二個表中。我將非常感謝您的指導。感謝您提供 – user1820133

+0

如果你還沒有開始,從詳細數據開始創建一個新的文件(減去標題信息)添加一個數據流任務和一個源/目的地來讀取/存儲新文件中的數據。請在文件頂部添加幾行空白行,看看是否可以找到旁路x行選項。同時,我將嘗試找到標題部分的示例並添加一個鏈接到我的答案。 –

相關問題