SQL Server 2005、2008、2008 R2。
「不齊右(ragged)」檔案就是除了最後一個資料行之外,其他所有「資料行」都有固定寬度的檔案。
它是以資料列分隔符號分隔。
所以,需要在「資料行」頁面上,指定各個資料行的固定寬度。
--00
需求的範例如下:
1. 第 1 到 4 字元,以 4 個字元是為一組,輸入到指定的資料行內。
2. 第 5 到 7 字元,以 3 個字元是為一組,輸入到指定的資料行內。
3. 第 8 到 12 字元,以 5 個字元是為一組,輸入到指定的資料行內。
範例檔案的格式如下:
--01
--02
準備工作:
步驟01. 執行以下的範例程式碼,建立範例資料表與新增資料列:
-- 建立範例資料表:tragged01 USE Northwind GO IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tragged01]') AND type in (N'U')) DROP TABLE [dbo].[tragged01] GO CREATE TABLE [dbo].[tragged01]( rid INT IDENTITY PRIMARY KEY, [c1] [char](4) NULL, [c2] [char](3) NULL, [c3] [char](5) NULL ) ON [PRIMARY] GO INSERT dbo.tragged01 VALUES('A123','456','78901') INSERT dbo.tragged01 VALUES('B123','456','78901') INSERT dbo.tragged01 VALUES('C123','456','78901') GO -- SELECT * FROM dbo.tragged01 GO
--03
練習一:使用「SQL Server 匯入和匯出精靈 」,匯入來源文字檔,使用「不齊右(ragged)」
完成目標:
設定來源文字檔案的「分欄符號」,也就是分隔線。
匯入到 SQL Server 資料庫內。
工作1:「SQL Server 匯入和匯出精靈 」
步驟01. 執行「SQL Server 匯入和匯出精靈 」。
步驟02. 在「選擇資料來源」視窗,輸入以下的參數:
在左邊窗格,點選「一般」頁籤。
在「資料來源」方塊,下拉選取:「一般檔案來源」。
在「檔案名稱」區域,點選「瀏覽」,選擇當做來源的文字檔案。
在「格式」方塊,下拉選取:「不齊右」。
在「標頭資料列分隔符號」方塊,下拉選取:「{CR}{LF}」。
--04
在左邊窗格,點選「資料行」頁籤。
在右邊的「來源資料行」區域,在下方的資料值區域。
在要做分隔的字元值處,按下滑鼠,應該會出現做為分隔字元值用的「分欄符號」,也就是分隔線。
--05
在左邊窗格,點選「進階」頁籤。
在右邊窗格的「設定每一個資料行的屬性」區域,分別檢視個別資料行的屬性設定。
--06 點選「資料行 0」
--07 點選「資料行 1」
--08 點選「資料行 2」
在「OutputColumnWidth」方塊,設定為:5。
在左邊窗格,點選「預覽」頁籤。
--09
點選「下一步」。
步驟03. 在「選擇目的地」視窗,連線到指定的目標伺服器,選擇指定目標資料庫,點選「下一步」。
步驟04. 在「選取來源資料表和檢視」視窗,設定以下的參數:
--10
在「目的地」區域,確認選取要做為匯入用的目標資料表。
點選「預覽」,檢視所取樣的來源資料,點選「關閉」。
--11
步驟05. 點選「編輯對應」,在「資料行對應」視窗,對個別資料行設定適當的參數:
在「對應」區域,在「目的地」方塊下方的<忽略>值,點選合適的資料行之名稱,並設定適當的資料類型、長度等屬性,點選「確定」。
--12
--13
點選「下一步」。
步驟06. 在「儲存並執行封裝」視窗,點選「立即執行」,點選「下一步」。
步驟07. 在「完成精靈」視窗,點選「完成」。
步驟08. 在「已成功執行」視窗,點選「關閉」。
--14
步驟09. 查詢與驗證匯入的資料表內容。
--15
練習二:使用「SQL Server 匯入和匯出精靈 」,匯出文字檔,使用「不齊右(ragged)」
完成目標:
由 SQL Server 匯出資料成文字檔案,各個資料行全緊密連接在一起。
工作1:「SQL Server 匯入和匯出精靈 」
步驟01. 執行「SQL Server 匯入和匯出精靈 」。
步驟02. 在「選擇資料來源」視窗,輸入以下的參數:
伺服器名稱:連線到目標伺服器。
資料庫:選擇目標資料庫。
點選「下一步」。
步驟03. 在「選擇目的地」視窗,輸入以下的參數:
在「目的地」方塊,下拉選取:「一般檔案目的地」。
在「檔案名稱」區域,點選「瀏覽」,設定匯出一般檔案的相關屬性。
在「格式」方塊,下拉選取:「不齊右」。
--16
點選「下一步」。
步驟04. 在「指定資料表複製或查詢」視窗,點選「從一個或多個資料表或檢視表複製資料」,點選「下一步」。
步驟05. 在「設定一般檔案目的地」視窗,輸入以下的參數:
在「來源資料表或檢視表」方塊,下拉選取:「dbo.tragged01」。
在「指定分隔目的地檔案的字元」區域,在「資料列分隔符號」方塊,下拉選取:「{CR}{LF}」。
--17
點選「預覽」,在「預覽資料」視窗,點選「確定」。
--18
點選「編輯對應」,在「資料行對應」視窗,輸入以下的參數:
在「目的地」區域,選擇「rid」,下拉選取:<忽略>。
點選「確定」。
--19
點選「下一步」。
步驟05. 在「儲存並執行封裝」視窗,點選「下一步」。
步驟06. 在「完成精靈」視窗,點選「完成」。
--20
步驟07. 在「已成功執行」視窗,點選「關閉」。
--21
步驟08. 檢視匯出的一般文字檔案。
--22
--23
參考資料:
選擇目的地 (SQL Server 匯入和匯出精靈)
http://msdn.microsoft.com/zh-tw/library/ms178430.aspx
選擇資料來源 (SQL Server 匯入和匯出精靈)
http://msdn.microsoft.com/zh-tw/library/ms189667.aspx
沒有留言:
張貼留言