我搜索了很多地方,很少使用論壇張貼...所以我相信我有一個罕見的問題在這裏。我有一個包含一對多關係的csv文件。例如,前10個字段包含一條記錄。這繼續到一個空白字段,然後在每個附加字段中的另一個分隔符是一個管道,其中有字段。這實際上是與單個呼叫有關的事件的日誌文件。一對多CSV文件移動到SQL使用邏輯
例如。
ID; MACHINEID; ANI ;; COMMAND | ARGUMENTS | 20120112.06:15:32
加粗的文本可以重複多次或幾次。這是SQL連接的許多方面。我需要回到SQL。我在想SSIS腳本塊。我在哪裏循環,並添加到許多桌子上,一邊是身份證。用管道分隔內部字段作爲分隔符。我只是想知道是否有人曾經見過這個,並有一個簡單的解決方案,也許我不知道。我會想象,這將在XML中創建得更好,但可惜情況並非如此。
任何幫助表示讚賞。如果它主要是建設性的,我甚至會接受批評。非常感謝提前。
要顯示錶化妝
CREATE TABLE [dbo].[tblIVRCalls](
[CALLID] [char](50) NOT NULL,
[MACHINEID] [char](50) NOT NULL,
[CHANNEL] [char](50) NOT NULL,
[DNIS] [char](50) NOT NULL,
[ANI] [char](50) NOT NULL,
[STARTTIME] [smalldatetime] NOT NULL,
[TRUNK] [char](50) NOT NULL,
[APPLICATION] [char](50) NULL,
[PLANID] [char](50) NULL,
[DERIVEDID] [char](50) NULL,
[TOTALTIME] [smalldatetime] NOT NULL,
CONSTRAINT [PK_tblIVRCalls] PRIMARY KEY CLUSTERED
CREATE TABLE [dbo].[IVRCallActions](
[pk] [bigint] IDENTITY(1,1) NOT NULL,
[fkCALLID] [char](50) NOT NULL,
[SequenceNumber] [bigint] NOT NULL,
[Command] [char](50) NOT NULL,
[Arguments] [varchar](max) NOT NULL,
[ExecutionTime] [datetime] NOT NULL,
CONSTRAINT [PK_IVRCallActions] PRIMARY KEY CLUSTERED
SSIS以行方式工作,所以不要指望用SSIS解決這個問題。它應該用一個簡單的C#程序 – JotaBe
@JotaBE處理:你將如何在C#中以不重複遍歷行的方式實現這一點? – JAQFrost
你的桌子是什麼樣的?對於你的例子,預期的結果是什麼? table1中有1行,table2中有N行?信息總是以三部分爲單位還是也是變量? – billinkc