一个 .csv 文件每晚都会被一家外部公司转储到我的 FTP 服务器上。(因此我无法控制它的格式,他们也不会改变它,因为它被其他几家公司使用。)
我的任务是创建一个运行以从文件中提取信息(然后将其删除)并将提取的数据插入 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。