Sql-Server-2005
如何將此 SAS 文本文件載入到 SQL Server 2005
每 3 個月,我必須將幾個固定寬度的文本文件載入到我們的 SQL Server 2005 數據庫中。它們可以有 5 到 798 列(嚴重),並且這些列經常變化。
以下是固定寬度數據文件的範例:
010001 2000040620000406001200004060220000406 010001 2000040620001116002 0020000406 010006 2007051620070516001200706220120070516 010006 2010071520100908002 0020100715 010006 2010071520100715001201007300120100715 010007 1993110919931109001199311230219931109
對於文本文件,我還收到了一個記錄列和數據類型的“SAS”文件。這是一個例子:
/************************************************************************ * Job Number: 119164 * Procedure Number: 6 * Record Length: 47 *************************************************************************/ INPUT @1 PRVDR_NUM $CHAR10. @11 SRVY_DT $CHAR8. /*YYYYMMDD*/ @19 CYC_VISIT_DT $CHAR8. @27 CYC_VISIT_NUM 3. @30 POC_SGN_DT $CHAR8. @38 LSC_BLDG_CNT 2. @40 SRVY_CMPLTN_DT $CHAR8. ; ***************************************************************; *** SAS LABEL Statement Follows ; ***************************************************************; LABEL PRVDR_NUM = 'CCN' SRVY_DT = 'Survey Date' CYC_VISIT_DT = 'Cycle Visit Date' CYC_VISIT_NUM = 'Cycle Visit Number' POC_SGN_DT = 'Administrator Signed POC Date' LSC_BLDG_CNT = 'Building Count' SRVY_CMPLTN_DT = 'Survey Completion Date' ;
我從中獲取此文件的人稱其為“SAS 輸入程式碼”
有沒有載入固定寬度文件也可以使用SAS文件創建表的解決方案?我目前的解決方案太複雜了,我真的希望有一個替代方案。
我會寫一個python腳本,
- 解析列描述符文件,獲取它們的寬度和名稱
- 遍歷輸入文件中的所有數據,將數據拆分為變數
- 使用 SQLAlchemy 將這些變數構造一個 sql 查詢到 sql 伺服器,以逐個發送或作為一批行或一次 1000 個發送
該腳本將採用列描述符文件和數據文件。該腳本還將有一個包含數據庫連接字元串的數據庫配置文件,或者您可以將其作為第三個參數傳遞。
我會為你寫這個,但我現在沒有時間。這是一個需要解決的巧妙問題。然而,Python 是完美的。我希望我的 SAS 問題如此簡單。