Sql-Server

將此非標准文本文件導入 SQL Server 的最佳方法是什麼?

  • April 26, 2016

我有一個每天生成的文本文件。它是一種固定寬度格式,但有一個令人沮喪的例外。第三列 (NAME) 具有可變寬度。該列的長度總是與數據集中最長的名稱 + 1 個空格完全相同。這使得每天的文件具有不同的列起點和終點。

有沒有人有一個聰明的方法來處理每天導入這個文件?更改源程序不是一種選擇。

我願意在導入前修改文件。

我願意使用幾乎任何工具,包括但不限於 SSIS、C#、PowerShell。

我正在尋找具有高可靠性的最不“混亂”的解決方案。

例子

A/R                                      Patient                                  PICASI, LINDA  00691685             90409843             Inpatient                                


Revenue                                  Patient                                  SIMPSON, RHASIRA B 00000000             00000000             Emergency                                

根據您的範例數據,看起來總共有 6 列。

COL1、COL2、COL4、COL5、COL6 = 所有固定寬度。

COL3 = 這是給定日期的固定寬度,但每天都是可變的(根據我的理解)。

您應該能夠根據任何給定線的長度每天計算 COL3 的寬度。你知道 COL1,2,4,5,6 都是固定寬度。取總和減去 COL1,2,4,5,6 得到 COL3 每天的寬度。

COL3 = LINE_WIDTH - (COL1 + COL2 + COL4 + COL5 + COL6)

獲得 COL3 的寬度後,您將能夠計算出所有起點和終點。

引用自:https://dba.stackexchange.com/questions/136597