.csv文件被外部公司夜间抛到我的FTP服务器上。 (因此我无法控制它的格式,也不会改变它,因为它被其他几家公司使用。)字段分隔符中的通配符 - 读取.csv文件
我的任务是创建一个工作,从文件中提取信息(然后删除它)并将提取的数据插入到SQL表中。
这是信息的包含.csv文件中的格式为:
[Message]Message 1 contains, a comma,[Cell]27747642512,[Time]3:06:10 PM,[Ref]144721721
[Message]Message 2 contains,, 2 commas,[Cell]27747642572,[Time]3:06:10 PM,[Ref]144721722
[Message],[Cell]27747642572,[Time]3:06:10 PM,[Ref]144721723
我有一个SQL Server 2012的表具有以下的列:
Message varchar(800)
Cell varchar(15)
Time varchar(10)
Ref varchar(50)
我想用的东西像SQL批量插入(见下文)从.csv文件中读取并插入到上面的SQL表中。
BULK INSERT sms_reply
FROM 'C:\feedback.csv'
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = ',', --CSV field delimiter
ROWTERMINATOR = '\n', --Use to shift the control to next row
TABLOCK
)
.csv文件中的分隔符不常见。我想知道是否有一种方法可以让我在指定分隔符时使用通配符。例如'[%]'?
然后,这将忽略方括号之间的任何内容并提取两者之间的信息。
我不能简单地使用逗号来分隔字段,因为在上面的.csv示例中可能会出现字段中的逗号。
或者如果任何人有任何其他建议,我会很感激。
TIA。
我不知道理解你所说的“不普通”的意思。分隔符是否总是'%'?或者它可能会改变?要么 ? –
“不常见”,我的意思是它并不总是像“,”这样的特定字符。查看顶部的.csv文件,您会注意到我需要的字段实际上由[Message],[Cell],[Time]和[Ref]分隔。即方括号内的字是分隔符。 –
我仍然看到逗号分隔每个字段。事实上,如果他们不在那里,它不会是一个.csv文件。 –